Agendamento de compromissos com avisos baseados no horário

Este script esta licenciado sob a GLP e seu uso é de sua inteira responsabilidade. Trata-se de um 'avisador', ou agenda, de compromissos para quem usa muito o computador. Seu uso padrão fará com que um aviso com os compromissos do dia e mais uma antevisão de sete dias a frente apareça na inicialização do ambiente grafico (ele pode ser usado em abientes sem modo gráficos) e além disso existe também um segundo aviso baseado na hora do compromisso. Esse segundo aviso pode ser uma tela gráfica ou um aviso sonoro através de um mp3 ou os dois juntos. A vantagem dele sobre outros tipos de 'agenda', como o evolution ou o korganizer, é que nele os agendamentos são rápidos (depois q vc pega o jeito). Também permite o uso de parâmetros. Abaixo o texto do arquivo LEIA-ME.txt que está dentro do arquivo a ser baixado ÍNDICE: 1.0)Informações Para O Usuário 2.0)Preparação Dos Scripts 2.1) 1º Passo: (Permissões De Execução Dos Scripts) 2.2) 2º Passo: (Configuração Interna Dos Scripst) 2.2.1) script 'agenda.sh' 2.3.1.1) No 'KDE' 2.3.1.2) No 'GNOME' 2.2.2) script 'minuto.sh' e 'hora.sh' 2.2.3) script 'dia.sh' 2.5.1) No 'KDE' 2.5.1) No 'GNOME' 2.3) 3º Passo: ('Cron' E Inicialização No Seu Ambiente Gráfico) (próximo à Linha Nº 90) 3.0) Funcionamento 4.0) Funcionamento Avançado ############################################################# ######## 1.0) INFORMAÇÕES PARA O USUÁRIO ######### **************************************************** OBJETIVO DESTE SCRIPT: Script simples e rápido para avisos de compromissos. Ao ser executado ele mostra o compromissos agendados para o dia corrente e também os compromissos agendados para os dias à frente. Além disso também emite um outro aviso baseado na hora do compromisso. A quantidade de dias dessa antevisão dos compromissos à frente pode ser definido facilmente. Em relação ao "agenda 3.x" foi acrescentado o uso de horários, existindo então este segundo aviso baseado no horário programado além do aviso geral dos compromissos do dia atual e futuros avistados na inicialização do sistema gráfico. VERSÃO: 4.0 2010/08/04 AUTOR: Ricken DEPENDÊNCIAS: Subentendendo-se que é necessário o bash numa versão rescente: 1) Editar o script 'agenda.sh' a linha: 'editor=kate' um editor de texto presente em seu sistema. 2) Editar os scripts 'agenda.sh', 'minuto.sh', 'hora.sh' e .'dia.sh' a linha: 'localizacao_do_script=caminho/Agenda' diacordo com a correta localização do diretório 'Agenda' em seus arquivos. 3) Editar o scripts 'minuto.sh', 'hora.sh' e 'dia.sh' a linha: 'ambiente_grafico=gnome' o tipo de ambiente gráfico que você usa ('KDE' ou 'GNOME'). Se você não sua nenhum desses dois então você terá de instalar o 'konsole' ou o 'gnome-terminal' como dependência deste script. 4) Agendar a execução do script 'agenda.sh' na inicialização do seu ambiente gráfico. 5) Agendar no 'cron' a execução do script 'minuto.sh' para ele ser executado a todos os minutos. 6) Agendar no 'cron' a execução do script 'hora.sh' para ele ser executado a toda hora. 7) Agendar a execução do script 'dia.sh' na inicialização do seu ambiente gráfico. 8) Ter o 'dialog' instalado. ############################################################# ######## 2.0) A PREPARAÇÃO DOS SCRIPTS ######### **************************************************** 2.1) 1º PASSO: (PERMISSÕES DE EXECUÇÃO DOS SCRIPTS) *************************************************** Dê permissão de execução aos scripts 'agenda.sh', 'dia.sh', 'horar.sh' e 'minuto.sh' que originalmente estão localizado dentro do diretório 'Agenda'. Para fazer isso pela linha de comando, supondo que você vá usar o diretório 'Agenda' dentro do diretório 'home' de seu usuário, digite em um terminal: cd Agenda/ chmod +x agenda.sh chmod +x dia.sh chmod +x horar.sh chmod +x minuto.sh Caso você prefira fazer isto pelo modo gráfico, usando o ambiente gráfico 'GNOME', 'KDE' ou um outro, localize os scripts descritos acima ('agenda.sh', 'dia.sh', 'horar.sh' e 'minuto.sh') em algum gerenciador de arquivo (como o 'Nautilus', do ambiente gráfico 'GNOME', ou o 'Konqueror', do ambiente gráfico 'KDE) e clique com o botão direito do mouse com o mesmo encima de um dos scripts e procure a opção 'Propriedade' e depois clique na caixa referente a permissão de execução para dar essa permissão. Repita a operação em todos os scripts ('agenda.sh', 'dia.sh', 'horar.sh' e 'minuto.sh'). 2.2) 2º PASSO: (CONFIGURAÇÃO INTERNA DOS SCRIPST) ************************************************* O script 'agenda.sh' esta localizado originalmente dentro do diretório 'Agenda'. Não recomendo mudar nem o nome do diretório e nem dos scripts. Você pode colocar o diretório 'Agenda' em qualquer lugar que deseje, mas caso você não esteja acostumado ao ambiente Linux recomendo que você coloque o diretório 'Agenda' dentro do diretório 'home' de seu usuário, que é o lugar mais fácil de ser localizado visto que normalmente é neste local que os gerenciadores de arquivos (como o 'Nautilus', do ambiente gráfico 'GNOME', ou o 'Konqueror', do ambiente gráfico 'KDE)' se localizam ao serem abertos sem que se especifique um caminha para eles. Agora que você determinou o local em que deve ficar o seu diretório 'Agenda' você terá que configurar algumas variáveis nos texto dos scripts localizado dentro deste diretório. Isso é simples de se fazer porém é necessário saber apenas como indicar corretamente a localização deste diretório em um lugar específico do texto. A boa notícia é que se você colocou o diretório 'Agenda' dentro do diretório 'home' de seu usuário então não é necessário configurar nada porque o script já esta pré-programado para esta situação e funcionará corretamente. Caso contrário, então você terá de editar a linha que começa com os dizeres 'localizacao_do_script=' em todos os textos dos 4 scripts ('agenda.sh', 'dia.sh', 'horar.sh' e 'minuto.sh'). localizacao_do_script=/home/$USER/Agenda (NOTE: Esta é a 2ª linha do script que não começa com o '#' (sustenido)) ATENÇÂO: Caso a localização deste diretório contenha nomes com espaços vazios é obrigatório o '"' (aspas) imediatamente depois do '=' (igual) e imediatamente após a última letra, conforme exemplo abaixo: localizacao_do_script="/home/Meus Documentos/Agenda" Edite-a assim: localizacao_do_script=novo_caminho aonde 'novo_caminho', obviamente, é o novo caminho. 2.3) 3º PASSO: ('CRON' E INICIALIZAÇÃO NO SEU AMBIENTE GRÁFICO) *************************************************************** 2.3.1) *** SCRIPT 'AGENDA.SH' *** ********************************* Para cumprir bem o papel de 'avisador' de compromissos é necessário fazer com que o script 'agenda.sh' seja executado no início da inicialização do seu ambiente gráfico para que você possa ter a visão geral dos compromissos logo na inicialização do sistema gráfico. Para isso acontecer é necessário fazer uma configuração que varia de ambiente gráfico para ambiente gráfico e infelizmente não será possível eu abordar cada uma dessas configurações em cada um dos ambientes gráficos existentes, então, vou explicar a configuração da execução do script 'agenda.sh' nos ambientes gráficos mais usados, ou seja, o 'KDE' e o 'GNOME'. 2.3.1.1) No 'KDE': ------------------ Abra um editor de texto e digite, ou cole, as 2 linhas abaixo: #! /bin/bash konsole -e bash /home/$USER/Agenda/agenda.sh & (NOTE: O endereço acima '/home/$USER/Agenda/agenda.sh' é válido somente se você tiver deixado o diretório 'Agenda' dentro do diretório 'home' de seu usuário. Caso contrário ajuste-o ao caminho correto para a localização do seu diretório 'Agenda' e do script 'agenda.sh': '/caminho/Agenda/agenda.sh') Agora salve-o com qualquer nome, eu sugiro 'autostart.sh' Depois dê permissão de execução e mova-o para o diretório /home/(seu_usuário)/.kde/Autostart, onde o '(seu_usuário)' é o nome do usuário que você esta logado. Se você não saber quem é o usuário que você está logado agora, então abra um terminal e digite: users debian Como podemos ver acima, o comando 'users' me informou exatamente quem é o usuário que estou logado agora, ou seja, no meu caso o usuário é 'debian' e eu devo executar a ação mencionada acima (a de mover o arquivo criado) com o seguinte endereço; '/home/debian/.kde/Autostart' (Note que o diretório '.kde' é um arquivo oculto porque começa com '.' (ponto). Se você for mover o arquivo criado para o local indicado utilizando um gerenciador de arquivos, como o 'Nautilus' ou o 'konqueror' entre outros, você terá de ativar uma opção na configuração desses gerenciadores de arquivos para você poder enxergar este arquivo oculto e executar a ação proposta). Caso prefira usar a linha de comando abra o terminal e digite: mv /caminho/autostart.sh /home/(seu_usuário)/.kde/Autostart fazendo logicamente a conversão do '(seu_usuário)' para o nome correto do seu usuário. No meu caso o comando ficaria assim: mv /home/debian/autostart.sh /home/debian/.kde/Autostart/ 2.3.1.2) No 'GNOME': -------------------- Na 'Barra de Tarefas' superior abra o programa para configuração de 'Sessões' usando este caminho: Sistema > Preferências > Sessões 1) depois de aberto, na aba 'Programas Iniciais' tecle em 'Adicionar'. 2) preencha o campo 'Nome' com qualquer nome desejado. 3) preencha o campo 'Comando' conforme abaixo: gnome-terminal -x bash /home/$USER/Agenda/agenda.sh & (NOTE: O endereço acima '/home/$USER/Agenda/agenda.sh' é válido somente se você tiver deixado o diretório 'Agenda' dentro do diretório 'home' de seu usuário. Caso contrário ajuste-o ao caminho correto para a localização do seu diretório 'Agenda' e do scrit 'agenda.sh': '/caminho/Agenda/agenda.sh') 2.3.2) *** SCRIPT 'MINUTO.SH' E 'HORA.SH' *** ******************************************* Os scripts 'minuto.sh' e 'horar.sh' precisam ser agendados no 'cron' para serem executados periodicamente. O script 'minuto.sh' será executado de minuto em minuto para que ele verifique os compromissos do dia e avise-o quando a hora destes chegar. O script 'horar.sh' será executado de hora e caso haja compromissos que devam ser avisados de hora em hora ele fará isso. É mais para o caso daqueles compromissos que não tem uma hora certa mas que deve ser feito naquele dia. Então. desse modo você ficará relembrando-os constantemente. Naturalmente, depois de você cumprir a tarefa você poderá eliminar sua execução deletando-o na opção 5 do menu principal (Veja abaixo). Abra o terminal e digite: crontab -e Ao executar este comando você terá de acrescentar as informações abaixo na tabela apresentada: * * * * * /home/$USER/Agenda/minuto.sh 0 * * * * /home/$USER/Agenda/horar.sh depois tecle o 'ESC', digite ':' (dois pontos), digite 'wq' e tecle o 'ENTER' para salvar e sair. (NOTE: Estou supondo ainda que a localização do diretório 'Agenda' seja o diretório 'home' de seu usuário. Caso não seja isso então acerte a localização dele corretamente. (algo assim; '/localização/Agenda/minuto.sh', aonde 'localização' é o caminho correto até o diretório 'Agenda")) 2.3.3) *** SCRIPT 'DIA.SH' *** ****************************** O script dia será executado apenas uma vez a cada login. Sua configuração é semelhante a configuração do script 'agenda.sh'. 2.3.3.1) No 'KDE': ------------------ Se você estiver usando o 'KDE' abra o script 'autostart.sh' que você criou anteriormente e acrescente a linha abaixo no final dele: bash /home/$USER/Agenda/dia.sh & (NOTE: Estou supondo ainda que a localização do diretório 'Agenda' seja o diretório 'home' de seu usuário. Caso não seja acerte a localização dele corretamente. (algo assim; 'bash /localização/Agenda/dia.sh &', aonde 'localização' é o caminho correto até o diretório 'Agenda")) 2.3.3.2) No 'GNOME': -------------------- Na barra de tarefas superiora abra o programa para configuração de 'Sessões' usando este caminho: Sistema > Preferências > Sessões 1) depois de aberto, na aba 'Programas Iniciais' tecle em 'Adicionar'. 2) preencha o campo 'Nome' com qualquer nome desejado. 3) preencha o campo 'Comando' confome abaixo: bash /home/$USER/Agenda/dia.sh (NOTE: O endereço acima '/home/$USER/Agenda/dia.sh' é válido somente se você tiver deixado o diretório 'Agenda' dentro do diretório 'home' de seu usuário. Caso contrário ajuste-o ao caminho correto para a localização do seu diretório 'Agenda' e do script 'agenda.sh': '/caminho/Agenda/dia.sh') ############################################################# ######## 3.0) FUNCIONAMENTO ######### **************************************************** O funcionamento do script 'agenda.sh' é simples e ágil e ele foi criado justamento para isto. No Linux existem vários programas, e bem sofisticados por sinal, que permitem agendamentos e lembretes de tarefas e compromissos, como por exemplo o 'Korganizer' ou o 'Evolution'. Porém os agendamentos de tarefas neles demoram muito se comparado com este script, e, somando-se isto ao fato deste script poder ser usado em ambientes sem o modo gráfico resulta em um diferencial. Ao executá-lo você tera o seguinte 'tela': julho 2010 agosto 2010 setembro 2010 Do Se Te Qu Qu Se Sá Do Se Te Qu Qu Se Sá Do Se Te Qu Qu Se Sá 1 2 3 1 2 3 4 5 6 7 1 2 3 4 4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11 11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18 18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25 25 26 27 28 29 30 31 29 30 31 26 27 28 29 30 ================================================================ *** COMPROMISSOS DE HOJE **** 24-Ago-2010 Ter 13:23 *** 14:00 -> Dentista ================================================================ *** COMPROMISSOS FUTUROS **** P/ os próximos 7 dias *** Para daqui a 1 dias: 13:00 -> Dentista Para daqui a 2 dias: 13:00 -> Dentista ================================================================ Tecle "ENTER" p/ acessar o menu ou a letra "q" + "ENTER" p/ sair ou digite diretamente a opção, se você lembrar, e tecle "ENTER" Como podemos observar, depois dos calendários existem dois campos separados pelas linhas duplas. A primeira é dos COMPROMISSOS DE HOJE para o dia de hoje e eles são realçados pela cor vermelha e ainda piscam para chamar a sua atenção. No caso deste exemplo temos um compromisso 'Dentista' as '14:00' hrs. e um segundo aviso será emitido neste horário caso o sistema ainda esteja ativo. O segundo campo é dos COMPROMISSOS FUTUROS que são avisos dos compromissos dos dias seguintes. No exemplo acima temos avisos para os 2 próximos dias para que tenhamos uma idéia do que nos espera. Por default o script procura compromissos nos próximos 7 dias mas se você preferir pode mudar isso editando a linha ' dias_lembretes=7' localizado no texto do script 'agenda.sh' e trocando o número '7' por algum outro, podendo usar até '0' se não quiser esses avisos antecipados de compromissos de dias à frente. Estando diante da 'tela' acima e teclando enter você verá esta outra tela: *********************** MENU PRINCIPAL *********************** "ENTER") Para voltar a visualização dos compromissos deste dia. q) Para sair deste programa. 1) Agendar compromisso. 2) Ver compromissos agendados. 3) Ver compromissos deste MÊS. 4) Alterar. 5) Deletar. Esta outra tela é o Menu Principal e ela oferece 5 opções, conforme visto, bastando escolher uma delas digitando o número correspondente (de 1 a 5) e teclando 'ENTER'. Se você teclar 'ENTER' sem escolher opção alguma então você voltará a 'tela' anterior, a de visualização de compromissos. Quanto as opções, elas são auto-explicativas e o único cuidado mesmo é o de sempre usar dois dígitos nas respostas de dia e mês, e quando preciso, 4 dígitos para anos. Quando solicitado uma data completa então use o formato 'AAAA-MM-DD', ou seja, comece pelos 4 dígitos do ano, depois '-' (traço), depois 2 dígitos do mês, depois '-' (traço) novamente e depois os 2 dígitos do dia, como nos exemplos a seguir: 2010-08-11 2010-09-17 2010-01-10 O formato para horas é 'HHMM', ou seja, dois dígitos para horas (de 0 a 23), e dois dígitos para os minutos (de 0 a 59). Exemplos: 1200 1630 0817 Você poderá digitar mais de uma opção nas respostas para as perguntas. Se você colocou vários dias e vários meses para o agendamento de um compromisso então o compromisso será agendado para aqueles dias em todos os meses que você colocou. Por exemplo, coloquei os dias 05 e 06 e o mês 08 e 09 então serão agendados os compromissos para o dia 05 e 06 do mês 08 e 05 e 06 do mês 09. Se preferir, na questão deletar compromissos, você pode acessar o diretório 'Compromissos', dentro do diretório 'Agenda', e procurar o dia a deletar lá dentro e excluí-los ali através do gerenciador de arquivos que você usa. Quando se agenda um compromisso é criado um arquivo e o nome desse arquivo é a data desse compromisso no formato 'AAAA-MM-DD', por isso se excluir este arquivo o compromisso também será eliminado. Se edita-lo por esse método igualmente ele será alterado. Algumas perguntas quando não respondidas presumirão uma resposta, mas isto é indicado na própria pergunta. Isto acontece para tornar as coisas mais ágeis. Quando a pergunta 'hora do compromisso' não for respondido o script 'agenda.sh' executará o aviso deste compromisso de hora em hora no dia em que este compromisso está agendado. A única exceção dos formatos acima é quando você quiser ser avidado de algum compromisso apenas uma vez no início da inicialização do seu ambiente gráfico. Neste caso você responderá 'x' nas perguntas para 'dia', 'mês' e 'ano' e não precisará responder nada para a pergunta da 'hora', porém se responder não alterará o comportamento previsto. Se você não obedecer esses formatos então os compromissos não serão avisados nem nas horas previstas e talvez nem no aviso geral. Para torna-lo ainda mais ágel recomendo criar dentro do seu arquivo '.bashrc' um aliás para que ele seja executado como se fosse um comando, apenas digitando um nome, sugiro 'agenda'. Para isto abra o arquivo '.bashrc' e próximo do final do arquivo aonde tem várias linhas começada pela palavra 'alias' acrescente a seguinte linha: alias agenda='bash /home/$USER/Agenda/agenda.sh' (NOTE: O endereço acima '/home/$USER/Agenda/agenda.sh' é válido somente se você tiver deixado o diretório 'Agenda' dentro do diretório 'home' de seu usuário. Caso contrário ajuste-o ao caminho correto para a localização do seu diretório 'Agenda' e do script 'agenda.sh': '/caminho/Agenda/dia.sh') (Essa configuração só terá efeito para os terminais que forem aberto após esta configuração). Um outro detalhe em adição ao anterior é que este script aceita o uso de parâmetros. Por exemplo, você pode apenas querer agendar um compromisso rapidamente e nada mais que isso, então em vez de você executar o script 'agenda.sh' e depois procurar a opção de agendamento teclando 'ENTER' e teclando '1' você pode encurtar isto digitando no terminal 'agenda 1' (se seu arquivo '.bashrc' estiver editado conforme dica anterior) e ele abrirá o script já na opção de agendamento. Os parâmetros aceitos são: '0' ou 'menu' para acessar diretamente o 'Menu Principal'. '1' ou 'agendamento' para fazer os agendamentos de compromissos. '2' ou 'todos' para visualizar todos os compromissos. '3' ou 'mes' para escolher um mês e visualizar os compromissos dele. '4' ou 'alterar' para alterar um compromisso agendado. '5' ou 'deletar' para deletar um deletar um compromisso. '-h' ou '--help' para acessar este arquivo de ajuda. Uma última recomendação é o de testar a execução deste script mo sistema bem antes de usá-lo pra valer apenas para garantir que todas as configurações estejam corretas. ############################################################# ######## 4.0) FUNCIONAMENTO AVANÇADO ######### **************************************************** Você pode reeditar algumas opções de funcionamento para adaptá-las melhor a suas necessidades ou a do seu sistema. Por exemplo, você pode, além do aviso gráfico, usar um aviso sonoro como reforço ou usar apenas os sonoros ou ainda se você é um usuário avançado poderá modificar a forma como é emitido o avisa dos compromissos, podendo enviá-lo como mensagem de texto em seu celular, usar os bips da CPU etc.. Vamos supor que você queira apenas os avisos sonoros para os avisos de horário de compromissos. Lembre-se que além de um aviso geral dos compromissos do dia que é mostrado ao executar o script 'agenda.sh' existem a disposição os avisos por horários, os avisos de hora em hora e os avisos da inicialização do ambiente gráfico. Para mudá-los é simples, escolha uma música no formato '.mp3' (pode ser 'ogg' também, mas nesse caso você terá de acertar o player tocador para um tipo que lê este formato, veja como fazer isto mais a frente) e copie-os para o seu diretório 'Minuto', a mesma música ou outra para o diretório 'Hora' e a mesma música ou outra para o diretório 'Dia', dentro do seu diretório 'Agenda' (ou apenas faça um link dentro desses diretórios apontando para a mesma ou outras músicas, o que seria muito melhor porque evitaria o aumento de músicas repetidas espalhadas pelos seus diretórios). Prefira uma música curta e bem agitada mas serve qualquer música. Depois reedite os scripts 'minuto.sh', 'hora.sh' e 'dia.sh' na linha: som=nao e modifique-a para que fique assim: som=sim Fazendo assim agora teremos também os avisos sonoros. Se você quiser eliminar os avisos gráfico então, nos scripts 'minuto.sh', 'hora.sh' e 'dia.sh', reedite a linha: ambiente_grafico=kde ou ambiente_grafico=gnome e modifique-a para que fique assim: ambiente_grafico= (Ou seja apague tudo depois do sinal de '=' (igual)) Com essas configurações você pode fazer muitas combinações, conforme as necessidade de seu sistema ou suas preferências pessoais. Você pode, por exemplo, usar a combinação conjunta de aviso gráfico e sonoro para os avisos de horários de compromissos e ainda usar apenas um aviso sonoro para os avisos de hora em hora e ainda também usar apenas um aviso gráfico para o aviso de compromissos que serão mostrados uma vez por inicialização do ambiente gráfico (KDE, GNOME, etc), ou seja, combine como preferir. Porém usando o comando 'mpg123', que é o comando default usado nestes scripts ('minuto.sh', 'hora.sh' e 'dia.sh') para executar uma música no formato 'mp3', você poderá ter três problemas: 1) não tê-lo instalado. 2) caso a música não seja curta e você queira para a execução dela então você terá de executar em um terminal o comando 'killall mpg123'; 3) você terá de ficar restrito apenas a formatos de música em 'mp3'. Para resolver estas limitações então existe mais uma configuração nesses scripts (minuto.sh', 'hora.sh' e 'dia.sh'). Tratasse da linha: tocador=mpg123 modifique-a para que fique assim tocador=seu_tocador Aonde 'seu_tocador' é o seu player tocador de sua preferência, como por exemplo o 'xmms', ou 'audacious', etc. Se você é um usuário avançado, além de optar pelos avisos sonoros ou gráficos, você poderá editar um tipo de aviso particular, que poderá ser o envio de uma mensagem de texto para seu celular, usos do bips de sua CPU ou uma outra ação. Para tal os scripts 'minuto.sh', 'hora.sh' e 'dia.sh' já têm uma outra opção pré-preparada para que você programe esta nova ação rapidamente. Para tal apague os dizeres 'echo ok' nos finais destes scripts entre as linha começadas com três '#' (sustenidos), e depois programe essas ações neste espaço. Abaixo mostra como este local esta indentificado: ### REEDITE - COMEÇO echo ok ### REEDITE - FIM Depois mude a linha: minha_opcao=nao para minha_opcao=sim para ativar a execução da ação editada.

Por: Ricardo Sabaliauskas


estoque.sh - Gerenciamento de estoque/almoxarifado

Este script que uso diariamente tem por objetivo gerenciar de um modo simples um estoque/almoxarifado. Basicamente os materiais entram como "+x", onde "x" é um número inteiro e saem com "-x". Também existem várias maneiras de exibir o saldo, como por exemplo, saldo unitário, saldo de um conjunto, saldo total, saldo por funcionários, saldo de saídas semanal (para fornecer uma base para quantidade de reposição), etc... Está licenciado sob GLP, seu uso é de sua inteira responsabilidade e não se deve alterar/remover a menção do autor. ########################################################### ########## 1.0) INFORMAÇÕES BÁSICAS ########### ************************************************ Nome deste script: .estoque.sh Objetivo deste script: Gerenciamento de materiais de estoque Autor: Ricardo Sabaliauskas Licença: GLP (Sem nenhuma garantia direta ou indireta). Uso e risco por sua conta. Versão: 1.0 Notas da versão: Esta versão, "1.0" do shell-script ".estoque.sh" acrescentou novas funcionalidades referentes ao testes das respostas. Agora é necessário adicionar todos funcionários e também todos os materiais em seus respectivos diretórios e se na solicitação de materiais ou funcionários houver uma resposta que não coincida com os dados já fornecidos então a pergunta será refeita para que haja a devida correção. Também houve uma melhor padronização e limpeza do código e também suporte à cores. Dependências: - bash em versão recente. - Configuração e criação dos diretórios para os itens de materiais, funcionários e talvez observações. - unix2dos (dependendo da configuração) ########################################################### ########## 2.0) FUNCIONAMENTO ########### ************************************************ Existe um software, muito bem falado, chamado "Stoq" e este tem por objetivo a gerência de estoque no GNU/Linux. É um software com muitas funções para uso empresarial. Este script foi feito para um uso mais limitado, com muitas menos funções, basicamente registra "+x" ou "-x" (onde "x" é um número) de material e também fornece o saldo dos materiais em estoque. Ele funciona em modo texto e possui um recurso para que haja a menor quantidade possível de digitação resultando um funcionamento de ações rápidas. Com respeito a este recurso é necessário ressaltar como funcionam a ações de copiar e colar no GNU/Linux. No GNU/Linux não existe a necessidade, em muitos casos, de usar o "Ctrl + C" e o "Ctrl + V" para copiar alguma coisa e colá-la em outro lugar. Basta selecionar a frase a ser copiada com o mouse e depois clicar o roler para colá-la apenas usando a seta do mouse para indicar o local (roler é aquela rodinha que é usada para subir ou descer uma página, sem que haja necessidade de usar a "seta" do mouse). Sim, é isto mesmo, o roler também tem a função de clicar além de subir ou descer a página do navegador de Internet (o "Ctrl + C" e o "Ctrl + V" funcionam no GNU/Linux similarmente ao Windows, mas para este script é muito mais prático usar este sistema através do roler do mouse). Com isto em mente, ao se fazer um registro de entrada ou saída de material do estoque, será exibido, durante os questionários de material, .funcionários .., uma listagem e através deste método devemos selecionar com mouse o item desejado, teclar "q" para sair da listagem, ("q" minúsculo), e depois com a seta do mouse "mirar" na linha abaixo da pergunta e clicar o roler do mouse. Com isto você digitará menos e também permitirá manter um padrão único nas referências à aquele material. NOTE: Quando a listagem de itens for muito grande e ficar incômodo ficar procurando determinado item, o comando "less", que é responsável pela exibição desta listagem, tem um recurso de filtragem para podemos localizar mais rapidamente o item procurado. Vamos supor que você esteja procurando por algum item que se chama "sapato_qualquer-coisa", então você digitaria "/sapato" e teclaria o "ENTER" e o comando "less" vai realçar todos os item que tem a palavra "sapato". Um outro ponto a ser comentado é os nomes de materiais no estoque. Seria interessante usar nomes padronizados. Eu, particularmente, sigo a seguinte fórmula: - nome de materiais começam com as letras minúsculas. (Isso facilita a digitação no caso acima mencionado, na filtragem do comando less) - Não uso espaço em branco. NOTE: Eu não recomendo o uso de espaço em branco, embora talvez isso não seja um problema. O uso de espaço em branco pode causar erros e este script não foi testado usando-os. - A separação dos nomes é feita por uma letra maiúscula. Exemplo: botinaDeProtecao vassouraDeJardineiro - Comece sempre por um nome básico e depois acrescente alguma característica. Exemplo: botina botinaPreta botinaPretaDeProtecaoBicoDeMetal botinaMarromDeProtecaoBicoDePlastico - O nome do fabricante aparece depois do "-" (hífen). Exemplo: botinaDeProteção-MarcaChule vassouraDeJardineiro-SemMarca - O "_" (underline) separa as medidas, tamanho... Exemplo: botinaDeProteção-MarcaChule_40 botinaDeProteção-MarcaChule_41 fioDeCobreFlexivel-Cobrecom_1x25mm2 Você pode usar do modo que quiser mas lembre-se que certas funções, como a de "Saldo De Estoque De Um Conjunto", dependem de uma parte do nome para formar este conjunto. Se executar o script "agenda.sh" seguido da letra "h" será exibido estas informações aqui. (Ou ainda; "-h", "help", "--help".) Também é possível usar um outro parâmetro na execução deste script. Quando feito isso o retorno será o saldo de todos itens que conterem a palavra passada como parâmetro. Apenas lembre-se que no Linux letra maiúscula e minúscula são entendidas como palavras diferentes. Exemplo, "Casa" é diferente de "casa". ########################################################### ########## 3.0) CONFIGURAÇÃO DAS VARIÁVEIS ########### ************************************************ NOME DESTE SCRIPT O nome deste script é "estoque.sh" e recomendo-o deixá-lo assim. Porém você é livre para mudar seu nome conforme sua necessidade. Para que uma mudança de nome não prejudique algumas funções deste script foi criada a variável abaixo. Renomeie conforme exemplos: Default: NameSHEstoque=".estoque.sh" NOTE: O "." (ponto) no início do nome serve para tornar o arquivo oculto. Desta forma ele não aparece em listagem comuns com o comando "ls" nem no navegador de arquivos. Para visualiza-los será necessário usar o parâmetro "-a" no comando "ls" ou descriminar a opção "Mostrar arquivos ocultos" nos navegadores de arquivos. Supondo que o novo nome seja "Saldo_de_Estoque.sh": NameSHEstoque="Saldo_de_Estoque.sh" LOCALIZAÇÃO DO DIRETÓRIO AONDE ARQUIVOS GERADOS POR ESTE SCRIPT SERÃO ENVIADOS. Este script permite a formação de arquivos ".txt" com certos dados referentes ao estoque. Por exemplo, você quer uma listagem apenas com os itens sapatos_qualquer_coisa, para enviar a alguém. Neste caso, após você digitar 2 na opção; "2) Saldo De Estoque." e depois 2 na opção; "2) Saldo De Estoque De Um Conjunto." e depois escolher parte do nome de item, (neste caso "sapato") e após ser exibido todos saldos dos itens que contém a palavra sapato (tudo em letra minúscula, exemplo; sapatoProtecao_42, sapatoProtecao_44, sapatoSocial_43...) você terá um menu e neste menu você terá a opção "1) Enviar Para Um Arquivo.". Escolhendo a opção "1" neste ponto será criado um arquivo "/algum_lugar/SaldoConjunto-sapato.txt" com a listagem que exibida anteriormente. Esse "algum_lugar" é definido aqui. Default: PathHome="/home/"$USER"" LOCALIZAÇÃO DO DIRETÓRIO AONDE OS ARQUIVOS/DIRETÓRIOS COM OS NOMES DOS MATERIAIS DE ESTOQUE SERÃO CRIADOS. NOTE: O script ".estoque.sh" pode localizar-se aonde você quiser, mas por padrão ele se localiza neste diretório também. Default: PathDir="$PathHome/ESTOQUE" LOCALIZAÇÃO DO DIRETÓRIO AONDE OS ARQUIVOS/DIRETÓRIOS COM OS NOMES DOS FUNCIONÁRIOS SERÃO CRIADOS. Default: PathFuncionarios="$PathHome/FUNCIONARIOS" LOCALIZAÇÃO DO DIRETÓRIO AONDE OS ARQUIVOS/DIRETÓRIOS COM OS NOMES DAS OBSERVAÇÕES SERÃO CRIADOS. Default: PathOBS="$PathHome/OBSERVAÇÕES" CASO não pretenda fazer um diretório para este fim então deixe a variável "PathOBS=" assim: PathOBS="XxXxXxXxXxX" DIRETÓRIOS OU ARQUIVOS É necessário criar um diretório para os materiais e outro diretório para os solicitantes (Usuários). Nesses diretórios serão colocados os nomes de todos os possíveis solicitantes e dos todos os materiais que serão usados em seu estoque, em forma de arquivos ou diretórios, respectivamente. Para o funcionamento deste script é indiferente esta opção desde que o seu arquivo "bashrc" esteja configurado para uma listagem comum de diretórios e aquivos (ou seja, ao executar o comando "ls" ele não exibará arquivos executáveis com o "*" no final do nome, nem o "/" no final dos nomes de diretórios [Se você não entendeu o que estou dizendo, então deixe a opção em sua configuração default]). Essa configuração existe para o caso de você resolver guardas fotos, manuais ou qualquer outra informação dos materiais usado no estoque e queira aproveitar o diretório de materiais já usado por este script, tornando desnecessário a recriação de um novo diretório para este fim. Para Diretórios: Faca=mkdir Para Arquivos (Default): Faca=touch LOCALIZAÇÃO E NOME DO ARQUIVO QUE SERÁ USADO COMO BANCO DE DADOS. Default: PathDirFile="$PathDir/.estoque.txt" NOTE: O padrão também é um arquivo oculto (seu nome começa com ".") NOME DE ARQUIVOS DE SAÍDA: Este script permite a formação de arquivos .txt (tanto na formatação Unix como na formatação Windows, configuração disponível logo abaixo) com um conteúdo filtrado ou não. Para estes arquivos que serão formados é necessário um nome e esta configuração de nomes é feita aqui. NOTE: Não coloque a extensão ".txt" porque esta será inserido automaticamente. Para arquivos de "Saldo Unitários" de estoque: Default: SaldoUnitarioFile=SaldoUnitario Para arquivos de "Saldo de Conjuntos" de estoque: Default: SaldoUnitarioFile=SaldoConjunto Para arquivos de "Saldo Total" de estoque: Default: SaldoTotalFile=SaldoTotal Para arquivos de "Saldo de itens por um Funcionário": Default: SaldoFuncionarioFile=SaldoFunionario Para arquivos de "Saldo de itens de todos Funcionários": Default: SaldoFuncionariosFile=SaldoFunionarioS Para arquivos com materiais maior que certa quantidade: Default: SaldoQuantidadeMaiorFile=SaldoQuantitativoMaior Para arquivos com materiais iguai a certa quantidade: Default: SaldoQuantidadeIgualFile=SaldoQuantitativoIgual Para arquivos com materiais menores que certa quantidade: Default: SaldoQuantidadeMenorFile=SaldoQuantitativoMenor Para arquivo de "listagem de registros de movimentação completa". Default: ListagemCompleta=ListagemCompleta Para arquivos de "listagem de registros de movimentação completa". Default: ListagemParcial=ListagemParcial Para arquivos de "Saldo Semanais". Default: SaldoSemanalfile=SaldoSemanalfile FORMATO DE SAÍDA DE ARQUIVOS. Os formatos da saída dos arquivos são ".txt" na formatação Unix. Porém eles podem ser formatados para o .txt do Windows, desde que você tenha o pacote "unix2dos" instalado em seu sistema (Debian e derivados). Default: FormateTXT="" Opcional: FormateTXT=windows COR INDICADORA DE QUANTIDADE: Este script tem suporte a cores e este é usado para realçar as quantidades de materiais na função saldo. Quando as funções de saldo forem efetuadas os itens que possuírem a quantidade especificada serão realçadas com a cor indicada (para essa situação), os item com maiores quantidades com uma outra cor indicativa de maior quantidade e os itens com menores quantidades com a outra cor indicativa de menor quantidade. O número, ou essa base quantitativa, para o cálculo das cores (igual, maior ou menor) é indicada abaixo. Default: QuantidadeAlerta=1 CORES INDICATIVA DE QUANTIDADE NO SALDO ESTOQUE: Conforme explicação nas linhas anteriores você pode escolher as cores indicativas, ou alertas, de quantidade. As cores disponíveis são: - Para rosa use $ROSA - Para verde use $VERDE - Para amarelo use $AMARELO - Para azul escuro use $AZUL_ESCURO - Para lilas use $LILAS - Para azul claro use $AZUL_CLARO - Para branco use $BRANCO - Para vermelho use $VERMELHO - Para branco bold use $BRANCO_BOLD Veja os exemplos e depois configure a seu gosto. - Para anular efeito de cores: COR_MAIOR_UM="" COR_IGUAL_UM="" COR_MENOR_UM="" - Para indicar somente com a cor vermelha apenas os itens menor que a base quantitativa: COR_MAIOR_UM="" COR_IGUAL_UM="" COR_MENOR_UM=$VERMELHO - Para indicar cor verde para maior e cor amarela para igual que a base quantitativa, e a cor vermelha para menor: COR_MAIOR_UM=$VERDE COR_IGUAL_UM=$AMARELO COR_MENOR_UM=$VERMELHO Default: COR_MAIOR_UM="" COR_IGUAL_UM=$AMARELO COR_MENOR_UM=$VERMELHO CASO NÃO IDENTIFIQUE O SOLICITANTE Quando registramos uma entrada de material nem sempre queremos descriminar o fornecedor, que neste caso seria descriminado na opção "solicitante", e é por isso que este script permite o lançamento de solicitantes vazios ou nulos. Nesses casos a configuração de um nome para representar esses solicitantes nulos é feita aqui. SolicitanteNulo=??? A QUANTIDADE DE REGISTROS DO HISTÓRICO DE LANÇAMENTOS A SEREM EXIBIDOS NOS LANÇAMENTOS DE ENTRADA E SAÍDA DE MATERIAIS. Ao fazer um registro de entrada e saída de material é exibido um resumo do histórico do solicitante, se este não estiver vazio, ou do material ( caso o solicitante esteja vazio). Este resumo é simplesmente os últimos "X" quantidade de registro do material ou do solicitante. Este "X" números é configurado aqui. Se colocar "0" nada será exibido. NumeroDeExibicoesNoLancamento=5 Este script permite você saber a média de saídas de um produto por semana. Esta função existe primariamente para auxiliar a obtenção de novos materiais, porque assim é possível ter uma base de consumo daquele material e calcular um consumo de quantidade por um período específico. A semanas e o ano do qual se começará a calcular a média é setada aqui. O ano tem 53 semanas (1 a 53) e o número da semana é descrita nos dois últimos dígitos da data (por exemplo: 2013-02-25_Seg_08 o número 08 se refere à oitava semana do ano 2013). AnoDaSemana=2013 NumeroDaSemana=08 Ao fazer a média normalmente o número resultante é fracionado. Para setar a quantidade de dígitos depois da vírgula (ou melhor, o ponto) acerte a variável abaixo conforme exemplos: - Para dois dígitos após a virgula (ponto). scale=2 - Para três dígitos após a virgula (ponto). scale=3

Por: Ricardo Sabaliauskas


Dicas e explicações de comandos do Linux - rápidos e reeditáveis

Este script tem por objetivo explicar os comandos Linux e dar exemplos práticos. Os comandos 'man' e 'help' fazem algo parecido, porém, de forma muito formal e muitas vezes difícil de entender e infelizmente ainda tem muita coisa na língua inglesa. Este script esta praticamente tudo em português e tem a vantagem extra de você poder incluir novos comandos (desde que edite corretamente as tags de começo e fim da informações -- observando-as da para entendê-las) e incluir também seus próprios exemplos de utilização do mesmo, como talvez aquele certo comando complicado que você usa de vez em quando e por isso nem sempre lembra dele. Também ele é facilmente transportado porque é apenas um arquivo texto com um código de execução e uma extensa base de dados tagueadas. (para procurar um comando específico no meio de todas essas linhas, use um leitor de arquivo texto como o 'Kate', por exemplo, procurando pelo nome do comando incluso entre o sinal de "<" (maior) e ">" (menor) (naturalmente sem a " -- aspas). exemplo "", sem as aspas, para achar informações sobre o comando ls diretamente no arquivo, sem executá-lo, permitindo assim que você mude algo na explicação deste comando). Abaixo, informações de ajuda para utilização deste script: OBSERVAÇÃO: Este documento é distribuído com a intenção de ser útil ao seu utilizador, no entanto _NÃO TEM NENHUMA GARANTIA, EXPLÍCITAS OU IMPLÍCITAS , COMERCIAIS OU DE ATENDIMENTO A UMA DETERMINADA FINALIDADE. NÃO ME RESPONSABILIZO POR EVENTUAIS DANOS EM SEU EQUIPAMENTO PELO MAL USO DAS INFORMAÇÕES NESTE DOCUMENTO. É DE SUA INTEIRA RESPONSABILIDADE QUERER OU NAO UTILIZAR OS COMANDOS DESCRITOS NESTE DOCUMENTO. AUTOR: Ricardo Sabaliaukas Desenvolvedor deste shell-script junto com todas as marcações necessárias além de algumas explicações de comandos. CRÉDITOS: Eder S. G. (Jordam) Editor do "Super Manual de comandos do GNU/Linux" versão 4.0.15, 22 de julho, 2005 no qual as informações deste shell-script esta baseada. Guia de comandos Unriotec Aurélio Marinho Jargas Informações sobre o editor vi, metacaracteres, shell-scripts, e talvez outros foram obtida de sua obra. OBJETIVO: Embora o Linux tenha o 'man' e o 'help' para informações sobre comandos, infelizmente, pelo menos em meu caso, nem sempre eles são suficientemente claros. Também, em muitos casos, a maioria dos comandos então em inglês excluindo assim uma boa parcela da população dessas úteis informações. Este script foi produzido em português do Brasil numa linguagem menos informal que o 'man' e o 'help' e além das explicações sobre o próprio comandos, com muitos exemplos práticos, tem por objetivo conter também informações didáticas sobre o próprio Linux. Esta consulta é rápida e dinâmica, pois permite que o próprio usuário acrescente informações dos quais ele quer relembrar posteriormente, e além disso permite um transportatibilidade muito fácil porque trata-se de um único arquivo texto. A contribuição extra de voluntários é bem vinda. COMO EXECUTAR ESSE SCRIPT? O nome deste script é 'com', abreviação de 'comandos', e não recomendo-o trocá-lo. Porém, se por algum motivo você precisar ou deseja fazer isto, então, além de renomear este script será necessário você ajustar a linha de configuração mostrada abaixo: nome_deste_script=com localizada no inicio deste script, na Sessão 'CONFIGURACAO PESSOAL', na linha, ou próximo desta, número 36. Troque o final dela, ou seja, a palavra 'com' pelo novo nome desejado. Caso este nome desejado for um nome composto, ou seja, com duas ou mais palavras intercaladas com ' ' (espaço), (por exemplo, 'comandos rapidos'), coloque entre "" (aspas), assim: nome_deste_script="comandos rápidos" Para executá-lo, supondo que o nome original seja mantido, abra o terminal e digite o comando abaixo (e depois, logicamente, tecle 'ENTER'): bash caminho-do-arquivo/com ONDE: caminho-do-arquivo = será necessário caso você esteja executando este script em um diretório que não seja o diretório de seu usuário. Supondo que este script esteja no diretório do seu usuário as coisas ficam mais fáceis, pois basta executar este comando: bash com Com rara exceção, o diretório do usuário não se encontrará na localização representada abaixo: '/home/UM_NOME' ONDE: esse 'UM_NOME' se trata do nome do usuário, nome este que você usa para logar-se no sistema. O diretório do usuário, é o diretório que você se situará caso você execute este comando no terminal: cd /home/$USER DICA: Supondo que você use o nome original, e eu incentiva-o a usá-lo, você teria de executar o seguinte comando, conforme já mencionado, ao executar o script 'com' assim: bash /caminho/com Embora isto não seja algo muito trabalhoso, talvez, isto possa incomodar ao fazer e refazer vez após vez. Uma solução é criar uma 'alias' para executar este script no arquivo '.bashrc' (se você quiser tornar essa solução acessível apenas ao seu usuário) ou '/etc/bashrc' (para tornar essa solução acessível a todos usuários de seu sistema Linux). Uma alias permitira que você execute em um terminal apenas uma palavra, como se fosse um apelido. No nosso caso, supondo que o nome original deste comando seja mantido, apenas digitando a palavra 'com' (e naturalmente também o ENTER) e seu script 'com' sera executado eliminando a necessidade de descrever o caminho completo para o script. Para tal efeito é necessário acrescentar uma linha com a devida configuração, ou no arquivo '.basrc' localizada no diretório de seu usuário, ou no arquivo '/etc/basrc/', conforme sua preferência. Essa configuração deve ser assim: alias com='CAMINHO/PARA/O/SCRIPT/com' ONDE: 'CAMINHO/PARA/O/SCRIPT' é o caminho correto para a localização de seu script 'com' em sua árvore de diretórios. Depois disso, para que a configuração entre em ação no próximo terminal que você abrir, sem a necessidade de reiniciar o sistema, execute o comando abaixo para ativar a configuração "imediatamente" (imediatamente entre aspas porque essa configuração valera apenas para os próximos terminais a serem abertos): source .bashrc Feito isto e executando o script você obterá o menu principal deste scrit que é exemplificado abaixo: _____________________________________________________ MENU PRINCIPAL q) Sair a) Ajuda c) Créditos v) Versão Comandos: "enter") Listar por TIPOS 1) TODOS possíveis ) Digite diretamente o nome do comando _____________________________________________________ Para escolher uma opção, digite a letra ou o número correspondente a ela sem o ")" (parênteses) e tecle o 'ENTER'. Para entendermos melhor, abaixo, uma explicação mais detalhadas sobre essas opções disponíveis: A OPÇÃO 'q': conforme mostrada no próprio menu, findara a execução do script. A OPÇÃO 'a': mostrará esta ajuda, que também pode ser vista diretamente no script, por volta da linha de número 675. A OPÇÃO 'c': mostrará os créditos autorais, porque esse script, cuja a função básica é explicar os comandos, foi baseado na explicações de outros autores, principalmente Eder S. G. (Jordam), autor do 'Super Manual de comandos do GNU/Linux', obra esta, que as informações deste script é baseado. A OPÇÃO 'v': mostrará a versão deste script, importante porque a intenção é atualizar e acrescentar mais informações a este script. A OPÇÃO 'ENTER': Se você teclar 'ENTER' sem escolher nenhuma opção você terá acesso a outro menu com mais outras opções. Essas opções permitirão você escolher categorias de comandos (manipulação de arquivos, particionamento de HD, etc..) para serem visualizados. Mais informação sobre isto logo baixo. A OPÇÃO '1': mostrará uma longa lista com a breve descrição de todos os comandos explicados neste script. A OPÇÃO 'Digite diretamente o nome do comando': mostrará todas as informações referente ao comando digitado (caso este esteja no banco de dados). É só necessário escrever o nome do comando e teclar 'ENTER'. Se em vez de digitar o nome do comando você digitar a categoria dele, por exemplo 'arquivos', se referindo logicamente aos comandos relacionados com manipulação de arquivos de texto, então será mostrado todos as informações disponíveis sobre cada um dos comandos para manipulação de arquivos (registrados no bando de dados deste script). Esta opção também suporta o uso de parâmetros de busca. Esses parâmetros tem por objetivo mostrar apenas uma parte das informações disponíveis sobre o comando referido com o objetivo de você visualizar as informações de seu interesse mais rapidamente. Você poderá, por exemplo, digitar 'ls exemplos' e teclar 'ENTER' para visualizar informações apenas do trecho com o título 'EXEMPLOS' do banco de dados do comando 'ls', eliminando assim informações supérfluas como os campos "DESCRIÇÂO", "SINTAXE", "OPÇÕES"... Também você poderá digitar algo assim: arquivos descrição para visualizarmos apenas o trecho com o título 'DESCRIÇÃO' de todos os comandos relacionados com a manipulação de arquivos. Se você digitar a palavra 'índice' (note, sem acentos) você terá uma listagem com as categorias de comandos disponíveis e os nomes para representá-los entre "()" (parênteses) conforme a representação abaixo: _____________________________________________________ INDICE 1) Manipulação de arquivos e diretórios (arq-dir) 101) Manipulação de arquivos (arquivos) 102) Editores de texto (editores-texto) 103) Manipulação de diretórios (diretórios) 2) Informativos (informativos) 3) Inicialização e encerramento do sistema (inicialização) 4) Manipulação de usuários, grupos, e de acesso ou permissões 401) Manipulação de usuários (usuários) 402) Manipulação de grupos (grupos) 403) Manipulação de controle de acesso ou de permissões (permissões) 5) Configurações do sistema (configurações) 501) Caminhos de aquivos importantes (caminhos) 6) Particionamento de HD's (particionamento) (continua...) _____________________________________________________ O nome encontrado em '()' (parênteses) no final da linha, é o nome que você deverá usar para representar a categoria de comandos escolhidos. (note que todos eles não possuem acentos, nem 'ç' (cedilha), nem espaços e nem letras maiúsculas). Para exemplificar melhor, suponhamos que você deseje visualizar os comandos relacionados com o 'Particionamento de HD' e você não sabe qual é o nome para indicar esta categoria. Então primeiro digite 'índice' e tecle 'ENTER'. Examine as informações apresentadas e você saberá que a palavra deve ser 'particionamento' (é a palavra em parênteses, lembra-se?). Ela se encontra nessa linha: 6) Particionamento de HD's (particionamento) Agora volte ao 'MENU PRINCIPAL' e digite: particionamento Fazendo assim você terá como retorno todas as informações sobre todos os comandos relacionados com o particiomantode HD (registradas no bando de dados deste script). Caso você queira apenas um campo do banco de dados de todos esses comandos você poderá digitar e executar isso: particionamento descrição Com isso somente o campo 'descrição' do banco de dados de todos os comandos relacionados com particionamento de HD serão apresentados. Com relação a esses parâmetros para visualização de um campo específico do banco de dados dos comandos temos: descrições é a breve descrição do comando. sintaxe é a descrição da sintaxe do comando. opção são as opções para o comando. explicação é uma matéria didática explicando a utilização e outras coisas pertinentes ao comando. exemplos são exemplos práticos de comandos usando as opções, redirecionamentos, etc. (note, eles não possuem acentos e nem letras maiúsculas) Quando teclar 'ENTER' sem ter digitado nada no 'MENU PRINCIPAL' será apresentado um outro menu, exemplificado abaixo: _____________________________________________________ MENU DE CATEGORIAS DE COMANDOS "enter") Voltar ao menu principal q) Sair 1) Manipulação de arquivos e diretórios 101) Manipulação de arquivos 102) Editores de texto 103) Manipulação de diretórios 2) Informativos 3) Inicialização e encerramento do sistema 4) Manipulação de usuários, grupos, e de acesso ou permissões. 401) Manipulação de usuários 402) Manipulação de grupos 403) Manipulação de controle de acesso ou de permissões 5) Configurações do sistema 501) Caminhos de aquivos importantes 6) Particionamento de HD's 7) Hardware 8) Processos 9) Kernel e Módulos 10) Instalações de aplicativos 11) Utilitários 1101) Agendamentos 1102) Impressão 1103) Gravação de CD's 1104) Aplicativos diversos 12) Ambiente Gráfico 13) Rede 14) Shell 15) Redirecionamentos e pipe 16) Metacaracteres 17) Shell-scripts 18 Expressões regulares 19 Serviços ou servidores 20) Específicos do Debian 21) Meus memorandos FIM Digite umas das opções acima: _____________________________________________________ Para entender melhor essas opções temos as mais detalhes abaixo: A OPÇÃO 'q': conforme mostrada no próprio menu, findara a execução do script. A OPÇÃO 'enter': Se você teclar 'enter' sem escolher nenhuma opção você terá acesso ao menu anterior. Caso você tecle 'enter' várias vezes você ficará alternando entre esses menus indefinidamente. A OPÇÃO '1' até '20': As opções seguintes, se referem as categorias de programas que estão registradas na base de dados. Você poderá escolher a categoria 'Manipulação de arquivos' digitando '101' e teclando 'ENTER'. Fazendo isso lhe será apresentado uma listagem de vários comandos com uma breve explicação sobre eles. A diferença sobre a opções, 1) Manipulação de arquivos e diretórios 101) Manipulação de arquivos 102) Editores de texto 103) Manipulação de diretórios é que a opção '1' apresentara um conjunto maior de comandos e a opções '101', '102' e '103' apresentará apenas uma parte deste conjunto. Em outras palavras o que é apresentado nas opções '101', '102' e '103' estarão presentes também na opção '1' e as opções '101', '102' e '103' apenas apresentarão partes da opção número '1'. Essa lógica se aplica também ao restante do menu em algumas outras categorias de comandos, como as opções '4', '401', '402', '403'. A OPÇÃO '21': Uma opção que merece destaque especial é a de número '21', chamada de 'Meus memorandos'. Ela é específica para você poder guardar informações pessoais suas relacionadas aos comandos que você usa ou até mesmo outras coisas. Para editar alguma coisa nele, basta abrir um editor de texto como por exemplo, o 'kate' (existem vários, 'gedit', 'kedit', 'write', etc...) e depois procure pela palavra 'memorando' (sem as aspas) até encontrá-la com uma sequencia de '%' (%%%%%%%%%%%%%%%%%%). (no kate, você acha o sistema de procura na opção 'Editar'>'Procurar...') e depois de achar a área específica edite-a a gosto, desde que a mensagem esteja localizada entre as linhas que tem uma sequência de % (porcentagem) (assim: %%%%%%%%%%%%...) junto com a palavra 'memorando' entre '>' e '<'. NAVEGANDO NA INFORMAÇÃO APRESENTADA Você teclou a opção '1' e agora?. Quando lhe for apresentada a lista de comandos referentes a manipulação de arquivos, agora é só "navegar" por esta lista para examiná-la. Abaixo algumas dicas referente a esta ação: Para descer as linhas, você pode tanto teclar 'ENTER' ou 'seta para baixo' e para subir as linhas, caso resolva voltar para o início, é só teclar 'seta para cima'. Quando resolver sair apenas tecle 'q' e você visualizara o menu anterior. Para mais informações veja o comando 'less' e o 'more'. VIZUALIZANDO RAPIDAMENTE UM COMANDO Navegar entre os menus pode ser fácil mas as vezes pode ser cansativo. Para resolver isso este script permite a execução através de parâmetros. A sintaxe é assim: bash com COMANDO OPÇÃO Onde: COMANDO = é o comando que você quer obter informações. OPÇÕES = este script foi feito para visualizações de trechos específicos dentro do texto de informações de um comando. Esses campos são: descrições = é a breve descrição do comando. sintaxe = é a descrição da sintaxe do comando. opção = são as opções para o comando. explicação = é uma matéria didática explicando a utilização e outras coisas pertinentes ao comando. exemplos = são exemplos práticos de comandos usando as opções, redirecionamentos, etc. Para exemplificar, suponhamos que nós queremos ver informações do comando 'ls', desta maneira rápida. O comando seria este: bash com ls Feito deste modo seria apresentado todo o texto de informações sobre o comando 'ls'. Mas vamos supor que nós queremos apenas ver os exemplos deste comando. Então o comando seria assim: bash com ls exemplos Feito assim, nós vizualizariamos apenas trecho referente ao título 'EXEMPLOS:' do texto de informações do comando 'ls'. Se quizessemosver apenas o campo 'DESCRICÃO:', então o comando seria: bash com ls descrição NOTA: Muitos comandos, em especial os menos conhecidos, não possuem todos os campos completos.

Por: Ricardo Sabaliauskas


Estatística dos MB's consumidos pela internet

Como eu, atualmente muitos usuários do Linux usam planos internet celular limitado. Quando este é o caso, existe a necessidade de você estar ciente do consumo de seu trafego de dados, porém, até onde sei, as operadoras não fornecem este serviço e eu não conheço outra alternativa. Estou desenvolvendo este script para solucionar este problema e em meu computador já está em ação e estou satisfeito com ele. Com o download você baixará um arquivo compactado. Descompactando-o, você terá um diretório chamado 'estatisticas_ppp', incluindo em seu interior o script 'status_ppp' e o aruivo texto 'LEIA-ME'. Abaixo o arquivo LEIA-ME: ########## --------------------------------- ########## AJUDA PARA O SCRIPT STATUS_PPP ########## --------------------------------- Versão: 00_fevereiro_2010 Autor: Ricardo Sabaliauskas Índice: 1) LICENCIAMENTO E TERMOS PARA USO 2) OBJETIVO DESTE SCRIPT 3) DEPENDÊNCIAS 4) DICA DE CONFIGURAÇÕES EXTERNAS 5) DICA DE CONFIGURAÇÕES INTERNA 6) DICAS DE USO ##### ------------------------------------- ##### 01) LICENCIAMENTO E TERMOS PARA USO ##### ------------------------------------- CABE SOMENTE AO SR., USUÁRIO, A RESPONSABILIDADE POR QUAISQUER PREJUÍZOS DECORRIDOS PELO USO DESTE SCRIPT. Caso não concorde com isto, não use este script Este script esta licenciado conforme a licença GLP. ##### -------------------------- ##### 2) OBJETIVO DESTE SCRIPT ##### -------------------------- Facilitar a conexão da internet através do seu modem celular e permitir o controle do tráfego, somando os MB's recebido e os envidados e exibindo-os em uma mensagem com o seguinte conteúdo: 1) Quantidade de MB's acessado no dia (no dia atual) 2) Média de MB's por dia. (média do mês presente) 3) MB's totais. (mês presente) ##### ------------------ ##### 3) DEPENDÊNCIAS ##### ------------------ Para que este script funcione conforme o planejado é necessário a instalação dos seguintes programas, como dependências para dele: 1) wvdial (com a correta configuração do arquivo "/etc/wvdial.conf" conforme a operadora de internet celular usada (TIM, CLARO, VIVO...). 2) konsole. 3) dialog. ##### ------------------------------------ ##### 4) DICA DE CONFIGURAÇÕES EXTERNAS ##### ------------------------------------- Conforme opção "1)" do título 'DEPENDÊNCIAS', é necessário configurar o arquivo "/etc/wvdial.conf" conforme a operadora que você estiver utilizando. Apenas como exemplo estou citando a minha própria configuração deste arquivo. Meu modem de acesso é o "Modem USB Nokia CS-10" e minha operadora é a "CLARO", então, a minha configuração para este arquivo "/etc/wvdial.conf" ficou assim: [Dialer Defaults] Carrier Check = off Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Password = claro Ask Password = 0 Check Def Route = 1 Phone = *99***1# Idle Seconds = 0 Modem Type = Analog Modem Stupid Mode = 1 Compuserve = 0 Baud = 460800 Auto DNS = off Dial Command = ATDT Modem = /dev/ttyACM1 ISDN = 0 Username = claro [Dialer claro3g] Stupid Mode = on Password = claro Auto Reconnect = off Username = claro Phone = *99***1# A opção "3)" do título 'DEPENDÊNCIAS' se refere ao programa chamado "dialog". O uso deste programa tem por objetivo fazer com que apareça uma caixa gráfica com as mensagens mostrando informações dos MB's trafegados ao encerrar o script. Embora não fosse a minha intenção inicial, utiliza-lo é útil também como aviso de que a internet caiu e é necessário reexecutar o script novamente. Caso não queira utiliza-lo comente o começo da linha (ou seja, coloque um '#' -sustenido- no começo dela) com os dizeres 'aviso_grafico'. Em alguns sistemas Linux, devidos as suas configurações defaults, como o Debian Linux Lenny por exemplo, esta caixa gráfica não aparecerá mesmo que o 'dialog' esteja devidamente instalado. Isto ocorrerá porque o usuário 'root' destes sistemas não têm permissão para executar programas gráficos. Se você não sabe se o sistema Linux que você está usando agora se enquadra no tipo citado acima, então faça um teste. Abra o terminal, logue-se como usuário 'root' e depois 'chame' um programa gráfico por este terminal. Exemplo: [email protected]:~$ su Senha: debian:/home/debian# kate NOTE: neste exemplo eu 'chamei' o programa chamado 'kate' pelo terminal. Para este teste ser válido é necessário que o programa 'kate' esteja instalado no seu sistema Linux, ou então, 'chame' outro programa gráfico que você saiba estar instalado, como por exemplo o 'firefox'. ou ainda, em alguns sistemas que usam o 'sudo', este teste poderia ser feito assim: [email protected]:~$ sudo su Senha: debian:/home/debian# gedit NOTE: neste exemplo eu 'chamei' o programa chamado 'gedit' pelo terminal. Novamente, para este teste ser válido é necessário que o programa 'gedit' esteja instalado no seu sistema Linux ou então 'chame' outro programa gráfico que você saiba estar instalado, como por exemplo o 'gimp'. Se ao executar este teste a mensagem de retorno for semelhante ao abaixo, então seu sistema não aparecerá a caixa gráfica com as mensagens com o estatísticas de MB's trafegados, tanto recebido como envidados: [email protected]:~$ su Senha: debian:/home/debian# kate Invalid MIT-MAGIC-COOKIE-1 keykate: cannot connect to X server :0 Para corrigir isto, se for o caso, será necessário executar o seguinte comando, como usuário comum, toda vez que você 'entrar' no ambiente gráfico: [email protected]:~$ xhost + access control disabled, clients can connect from any host NOTE: Naturalmente você poderá automatizar esta ação em vez de fazê-la manualmente toda vez que você 'levantar' o ambiente gráfico. Normalmente é uma tarefa simples desde que você use um ambiente gráfico mais completo como o 'KDE', 'GNOME', ou semelhantes. ##### ---------------------------------- ##### 5) DICA DE CONFIGURAÇÕES INTERNA ##### ---------------------------------- A principal configuração interna a ser feita no script 'status_ppp' para que ele possa funcionar devidamente é o acerto da variável 'localizacao'. Ela é feita na seguinte linha, que localiza-se nas primeiras linhas do script (a primeira linha não comentada, ou seja, que não começa com o "#" - sustenido). localizacao="`pwd`/estatisticas_ppp" Esta localização presume que você ira manter o script 'status_ppp' dentro de diretório 'estatisticas_ppp'. Este diretório, por sua vez, esta localizado dentro da seu diretório de usuário que por sua vez esta localizado dentro da diretório '/home'. Caso você mude esta localização você deverá descrever o caminho correto nesta linha, descrevendo dentro de "" (aspas), como nos exemplos abaixo: localizacao="/var/log/estatisticas_ppp" localizacao="/home/debian/.SCRIPT/estatisticas_ppp" localizacao="/home/estatisticas_ppp" localizacao="/home/Meus Scripts/estatisticas_ppp" NOTE: Esse script poderá localizar-se em um lugar estratégico para que vários sistemas Linux que por ventura você possa ter instalado o execute e você possa acessar a internet por todos eles e ainda assim ter um controle unificado do tráfego de MB's usados. Exemplificando, você poderá localiza-lo em partição que vamos chamar de 'sda1', uma partição de grande tamanho. Neste caso você poderia instalar vários sistemas Linux colocando o '/' em alguma outra partição e o '/home' deles nesta partição que chamamos de 'sda1' (neste caso é altamente recomendado usar um nome de usuário diferente em cada sistema instalado). Depois disso é só configurar cada sistema para executar o script 'status_ppp', de modo que, você pode alternar entre os sistemas Linux instalado, usando a internet neles, e ainda assim ter um controle unificado do tráfego de MB's usados, tendo a soma total de todos estes sistemas juntos (porém, deve-se acertar devidamente a data e hora de todos os sistemas). ##### -------------- ##### 6) DICAS DE USO ##### -------------- 1) Este script deve ser executado pelo usuário 'root', ou seja, o administrador do sistema. [email protected]:~$ su Senha: debian:/home/debian# sh estatisticas_ppp/status_ppp 2) Este script deve ficar em execução durante todo o período que você tiver usando a internet. Quando você quiser para-lo você deve executar simultaneamente as teclas "CONTROL + C" (com a janela do terminal em que ele estiver sendo executado em primeiro plano). Fazendo assim ele executará as somas necessárias para o correto controle do tráfego de MB's usados e apresentará o resultado à você. Não deve-se fechar a janela em que ele esta sendo executado diretamente (clicando o 'X' da janela) porque isso poderá causar problemas nas etapas subsequentes que ele executa, ou seja, as somas de MB's usados, o que nos interessa. 3) Em caso de queda de energia, sem que haja um nobreak funcionando, travamento do sistema, a somas de MB's usados será perdida causando imprecisões. 4) Ao executar simultaneamente as teclas "CONTROL + C" é normal o script demorar um pouco para retornar a janela gráfica com as mensagens de trafego de MB's usado. 5) Para uma melhor comodidade você poderá fazer um 'laçador', ou link para aplicativo, na sua área de Desktop para executar este script. Lembre-se apenas deve-se executá-lo como root. ESFORCE-SE.

Por: Ricardo Sabaliauskas