[RESOLVIDO] Script não roda completo pelo crontab
A pessoal, problema resolvido, o que acontecia era o seguinte. Quando rodamos o script pelo cron existe um limite de quantidade de caracteres a serem usados na ilnha de comando, no primeiro script tinha um echo mandando mensagens pra tela que eu tinah usado pra monitorar o q o script estava fazendo e acabei deixando l. Ao comentar o echo o script rodou normalmente at o final. Porm, o tar no executava corretamente em todos os usurios, at certo usuario ele fazia o backup certo, depois ficava uns arquivos de 20bytes. O detalhes era que eu tinha rodado o tar com o caminho completo da pasta a ser backupeada e aparecia a mensagem: tar: Removing leading `/' from member names Como isso ficava na linha de comando, quando chegava no limite do shell ele abortava o tar. Por isso quando estava com o echo ia at certo usuario e com o echo comentando passava um pouco mas ainda no chegava at o final. Pra eliminar essa mensagem foi s dar um cd nomediretoriobackup Valeu a todos que deram uma fora. Segue abaixo como ficou o script e o crontab. script #!/bin/sh ls /dados/home /scripts/users.txt cd /dados/home for i in `cat /scripts/users.txt`; do tar -czf /backup/$i.tar.gz $i 21 /dev/null echo tar -czf /backup/$i.tar.gz /dados/home/$i - `date` /scripts/loguserbkp.txt done # crontab # # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file. # This file also has a username field, that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly 52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly # # minuto hora diames mes diasemana usuario comando 07 1 * * * root sh /scripts/backup.sh 37 1 * * * root sh /scripts/bkpusers.sh 07 12 * * * root sh /scripts/backup.sh 07 12 * * * root sh /scripts/bkpusers.sh Mensagem encaminhada De: Marcos [EMAIL PROTECTED] Para: debian-user-portuguese@lists.debian.org Assunto: Re: Script no roda completo pelo crontab Data: Fri, 21 Oct 2005 16:02:19 -0200 Ol, Deixei o script pra rodar a noite sem o echo exibindo na tela e habilitei novamente o tar. Aconteceu algo semelhante, o script roda normalmente mas o tar s funciona at determinado usuario, os echos que direcionam o comando executado pro arquivo chegam at o final dos usuarios mas o tar no executa em todos, os arquivos .tar.gz que n oficaram corretos ficaram com um tamanho de 20bytes. Deve ser algo em relao a limite mesmo, vou dar uma pesquisada nesse sentido. Em Sex, 2005-10-21 s 10:53 -0200, Bruno de Oliveira Schneider escreveu: On 10/20/05, Marcos wrote: Funcionou parcialmente: O script dessa maneira funciona. Comentei a linha do echo e o cron rodou o script at o final mandando a saida do outro echo para o arquivo. Foram todos os usuarios certinho. Se eu descomente o primeiro echo ele interrompido em certo ponto. Vou deixar rodando sem o primeiro echo e descomentar o tar pra ver se ele vai fazer o tar de todo mundo. Amanh posto o resultado. Valeu a ateno de todos. [EMAIL PROTECTED]:~# cat /scripts/bkpusers.sh #!/bin/sh USUARIOS ## #ls /dados/home /scripts/users.txt for i in `ls /dados/home`; do #echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$i.tar.gz /dados/home/$i echo tar -czf /backup/$i.tar.gz /dados/home/$i - `date` /scripts/loguserbkp.txt done Um chute: Algumas coisas no Linux podem estabelecer limites de execuo para um processo (ver mdulo pam-limits -- se no me engano). Um processo pode ser limitado a um tempo de uso da CPU, quantidade de memria, quantidade de E/S, etc. possvel que o cron esteja colocando algum limite para o script e esse limite no est sendo respeitado, o que faz o script receber um sinal KILL. Se comentar o echo do incio faz o script rodar pode ser que o limite esteja na quantidade de dados escritos na sada padro. Isso pode ser verificado redirecionando esse echo para um arquivo e fazendo um outro script, sem nenhuma relao com esse que escreve muita coisa. Como o cron guarda o que foi escrito na sada padro para poder mandar por e-mail depois, bem provvel que haja um limite assim mesmo. Talvez o limite tenha valor somente para o processo que o cron chama, mas no para seus filhos. Assim, vale tentar colocar o script no diretrio cron.hourly para ver se acontece o mesmo erro. -- Bruno de Oliveira Schneider http://www.dcc.ufla.br/~bruno/ -- Marcos [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
On 10/20/05, Marcos wrote: Funcionou parcialmente: O script dessa maneira funciona. Comentei a linha do echo e o cron rodou o script até o final mandando a saida do outro echo para o arquivo. Foram todos os usuarios certinho. Se eu descomente o primeiro echo ele é interrompido em certo ponto. Vou deixar rodando sem o primeiro echo e descomentar o tar pra ver se ele vai fazer o tar de todo mundo. Amanhã posto o resultado. Valeu a atenção de todos. [EMAIL PROTECTED]:~# cat /scripts/bkpusers.sh #!/bin/sh USUARIOS ## #ls /dados/home /scripts/users.txt for i in `ls /dados/home`; do #echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$i.tar.gz /dados/home/$i echo tar -czf /backup/$i.tar.gz /dados/home/$i - `date` /scripts/loguserbkp.txt done Um chute: Algumas coisas no Linux podem estabelecer limites de execução para um processo (ver módulo pam-limits -- se não me engano). Um processo pode ser limitado a um tempo de uso da CPU, quantidade de memória, quantidade de E/S, etc. É possível que o cron esteja colocando algum limite para o script e esse limite não está sendo respeitado, o que faz o script receber um sinal KILL. Se comentar o echo do início faz o script rodar pode ser que o limite esteja na quantidade de dados escritos na saída padrão. Isso pode ser verificado redirecionando esse echo para um arquivo e fazendo um outro script, sem nenhuma relação com esse que escreve muita coisa. Como o cron guarda o que foi escrito na saída padrão para poder mandar por e-mail depois, é bem provável que haja um limite assim mesmo. Talvez o limite tenha valor somente para o processo que o cron chama, mas não para seus filhos. Assim, vale tentar colocar o script no diretório cron.hourly para ver se acontece o mesmo erro. -- Bruno de Oliveira Schneider http://www.dcc.ufla.br/~bruno/
Re: Script não roda completo pelo crontab
Ol, Deixei o script pra rodar a noite sem o echo exibindo na tela e habilitei novamente o tar. Aconteceu algo semelhante, o script roda normalmente mas o tar s funciona at determinado usuario, os echos que direcionam o comando executado pro arquivo chegam at o final dos usuarios mas o tar no executa em todos, os arquivos .tar.gz que n oficaram corretos ficaram com um tamanho de 20bytes. Deve ser algo em relao a limite mesmo, vou dar uma pesquisada nesse sentido. Em Sex, 2005-10-21 s 10:53 -0200, Bruno de Oliveira Schneider escreveu: On 10/20/05, Marcos wrote: Funcionou parcialmente: O script dessa maneira funciona. Comentei a linha do echo e o cron rodou o script at o final mandando a saida do outro echo para o arquivo. Foram todos os usuarios certinho. Se eu descomente o primeiro echo ele interrompido em certo ponto. Vou deixar rodando sem o primeiro echo e descomentar o tar pra ver se ele vai fazer o tar de todo mundo. Amanh posto o resultado. Valeu a ateno de todos. [EMAIL PROTECTED]:~# cat /scripts/bkpusers.sh #!/bin/sh USUARIOS ## #ls /dados/home /scripts/users.txt for i in `ls /dados/home`; do #echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$i.tar.gz /dados/home/$i echo tar -czf /backup/$i.tar.gz /dados/home/$i - `date` /scripts/loguserbkp.txt done Um chute: Algumas coisas no Linux podem estabelecer limites de execuo para um processo (ver mdulo pam-limits -- se no me engano). Um processo pode ser limitado a um tempo de uso da CPU, quantidade de memria, quantidade de E/S, etc. possvel que o cron esteja colocando algum limite para o script e esse limite no est sendo respeitado, o que faz o script receber um sinal KILL. Se comentar o echo do incio faz o script rodar pode ser que o limite esteja na quantidade de dados escritos na sada padro. Isso pode ser verificado redirecionando esse echo para um arquivo e fazendo um outro script, sem nenhuma relao com esse que escreve muita coisa. Como o cron guarda o que foi escrito na sada padro para poder mandar por e-mail depois, bem provvel que haja um limite assim mesmo. Talvez o limite tenha valor somente para o processo que o cron chama, mas no para seus filhos. Assim, vale tentar colocar o script no diretrio cron.hourly para ver se acontece o mesmo erro. -- Bruno de Oliveira Schneider http://www.dcc.ufla.br/~bruno/ -- Marcos [EMAIL PROTECTED]
Script não roda completo pelo crontab
Alguem j viu algo assim? O script abaixo funciona normalmente rodando direto do root, mas se coloco uma linha no crontab pra ele executar sozinho s faz o backup dos usuarios at a letra d e depois para de executar o resto dos usuario no loop. #!/bin/sh USUARIOS ## ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do echo tar -czf /backup/$k.tar.gz /dados/home/$k tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done crontab: 09 15 * * * root sh /scripts/bkpusers.sh A permisso do /script 777, do executavel bkpusers.sh tambem
Re: Script não roda completo pelo crontab
Já Troque: ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do por for k in /dados/home/*; do até Yuri Robinson --- Marcos [EMAIL PROTECTED] escreveu: Alguem já viu algo assim? O script abaixo funciona normalmente rodando direto do root, mas se coloco uma linha no crontab pra ele executar sozinho só faz o backup dos usuarios até a letra d e depois para de executar o resto dos usuario no loop. #!/bin/sh USUARIOS ## ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do echo tar -czf /backup/$k.tar.gz /dados/home/$k tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done crontab: 09 15 * * * root sh /scripts/bkpusers.sh A permissão do /script é 777, do executavel bkpusers.sh tambem ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
Marcos: Só por desencargo de consciência: Altere essa permissão aí para outra coisa como 755, 711 ou melhor ainda 500 (quando não for mais necessário testar o script). Dessa forma qualquer pessoa no sistema pode alterar esse script... Não é obrigatório não, mas é de bom tom... Abs, Artur. Em Quinta 20 Outubro 2005 14:16, Marcos escreveu: Alguem já viu algo assim? O script abaixo funciona normalmente rodando direto do root, mas se coloco uma linha no crontab pra ele executar sozinho só faz o backup dos usuarios até a letra d e depois para de executar o resto dos usuario no loop. #!/bin/sh USUARIOS ## ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do echo tar -czf /backup/$k.tar.gz /dados/home/$k tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done crontab: 09 15 * * * root sh /scripts/bkpusers.sh A permissão do /script é 777, do executavel bkpusers.sh tambem -- Artur F. Pimentel Analista de Suporte -- www.suam.edu.br www.unisuam.edu.br
Re: Script não roda completo pelo crontab
Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usurios. O script interrompido do nada. Muito estranho. ex: Em Qui, 2005-10-20 s 13:42 -0300, Yuri Robinson escreveu: J Troque: ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do por for k in /dados/home/*; do at Yuri Robinson --- Marcos [EMAIL PROTECTED] escreveu: Alguem j viu algo assim? O script abaixo funciona normalmente rodando direto do root, mas se coloco uma linha no crontab pra ele executar sozinho s faz o backup dos usuarios at a letra d e depois para de executar o resto dos usuario no loop. #!/bin/sh USUARIOS ## ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do echo tar -czf /backup/$k.tar.gz /dados/home/$k tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done crontab: 09 15 * * * root sh /scripts/bkpusers.sh A permisso do /script 777, do executavel bkpusers.sh tambem ___ Promoo Yahoo! Acesso Grtis: a cada hora navegada voc acumula cupons e concorre a mais de 500 prmios! Participe! http://yahoo.fbiz.com.br/
Re: Script não roda completo pelo crontab
Qtos usuários existem ao total Com qual usuário o script está sendo executado??? --- Marcos [EMAIL PROTECTED] escreveu: Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usuários. O script é interrompido do nada. Muito estranho. ex: Em Qui, 2005-10-20 às 13:42 -0300, Yuri Robinson escreveu: Já Troque: ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do por for k in /dados/home/*; do até Yuri Robinson --- Marcos [EMAIL PROTECTED] escreveu: Alguem já viu algo assim? O script abaixo funciona normalmente rodando direto do root, mas se coloco uma linha no crontab pra ele executar sozinho só faz o backup dos usuarios até a letra d e depois para de executar o resto dos usuario no loop. #!/bin/sh USUARIOS ## ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do echo tar -czf /backup/$k.tar.gz /dados/home/$k tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done crontab: 09 15 * * * root sh /scripts/bkpusers.sh A permissão do /script é 777, do executavel bkpusers.sh tambem ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
Est sendo executado como root, tanto no shell como no cron O total so 129 usuarios. At cheguei a remover o usuario que estava parando, mas ele para no proximo, sempre listando apenas 49 usuarios. Nem estou usando o tar pra no demorar nos testes, apenas pra ler o diretorio e jogar a saida em arquivo j est dando erro, o script interrompido sempre ao chegar no usuario 49. Em Qui, 2005-10-20 s 15:38 -0300, Yuri Robinson escreveu: Qtos usurios existem ao total Com qual usurio o script est sendo executado??? --- Marcos [EMAIL PROTECTED] escreveu: Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usurios. O script interrompido do nada. Muito estranho. ex: Em Qui, 2005-10-20 s 13:42 -0300, Yuri Robinson escreveu: J Troque: ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do por for k in /dados/home/*; do at Yuri Robinson --- Marcos [EMAIL PROTECTED] escreveu: Alguem j viu algo assim? O script abaixo funciona normalmente rodando direto do root, mas se coloco uma linha no crontab pra ele executar sozinho s faz o backup dos usuarios at a letra d e depois para de executar o resto dos usuario no loop. #!/bin/sh USUARIOS ## ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do echo tar -czf /backup/$k.tar.gz /dados/home/$k tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done crontab: 09 15 * * * root sh /scripts/bkpusers.sh A permisso do /script 777, do executavel bkpusers.sh tambem ___ Promoo Yahoo! Acesso Grtis: a cada hora navegada voc acumula cupons e concorre a mais de 500 prmios! Participe! http://yahoo.fbiz.com.br/ ___ Promoo Yahoo! Acesso Grtis: a cada hora navegada voc acumula cupons e concorre a mais de 500 prmios! Participe! http://yahoo.fbiz.com.br/
Re: Script não roda completo pelo crontab
Marcos: Um amigo meu me disse que a única coisa de estranha que ele viu foi o fato de você abrir um shell no cron e colocar uma chamada ao bash no script propriamente dito. Tire o sh do cron, e veja o que acontece. De 09 15 * * * root sh /scripts/bkpusers.sh para 09 15 * * * root /scripts/bkpusers.sh. OK?! Artur Em Quinta 20 Outubro 2005 16:01, Marcos escreveu: Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usuários. O script é interrompido do nada. Muito estranho. ex: Em Qui, 2005-10-20 às 13:42 -0300, Yuri Robinson escreveu: Já Troque: ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do por for k in /dados/home/*; do até Yuri Robinson --- Marcos [EMAIL PROTECTED] escreveu: Alguem já viu algo assim? O script abaixo funciona normalmente rodando direto do root, mas se coloco uma linha no crontab pra ele executar sozinho só faz o backup dos usuarios até a letra d e depois para de executar o resto dos usuario no loop. #!/bin/sh USUARIOS ## ls /dados/home /scripts/users.txt for k in `cat /scripts/users.txt`; do echo tar -czf /backup/$k.tar.gz /dados/home/$k tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done crontab: 09 15 * * * root sh /scripts/bkpusers.sh A permissão do /script é 777, do executavel bkpusers.sh tambem ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ -- Artur F. Pimentel Analista de Suporte -- www.suam.edu.br www.unisuam.edu.br
Re: Script não roda completo pelo crontab
Escreva o script em perl, faça algo diferente, DESCUBRA qual o erro, mas usar esse script por causa de uma tarefa é um absurdo, na minha opinião! até Yuri Robinson --- Fabio Guerrazzi [EMAIL PROTECTED] escreveu: quote quem=Marcos Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usuários. O script é interrompido do nada. Muito estranho. Uma vez vi uma mensagem semelhante na linux-br, com o cron se recusando a rodar scripts de forma correta. O Leonardo Pinto enviou um script como uma forma de não usar o cron. Segue abaixo: #!/bin/bash # Daemon para realizar Backup Administrativos # # Author: Leonardo Pinto # Hora do backup agendado TIME_BACKUP=04:00:00 # User specific environment LANGUAGE LANG=pt_BR export LANG dobackup () { FILE=-`date '+%a'` echo Iniciando Backup$FILE... /tmp/backup.log tar -czvf usuario.tar.gz /home/usuario /tmp/backup.log echo Backup concluído !! /tmp/backup.log } # Loop infinito while [ True ]; do sleep 1 if [ `date '+%H:%M:%S'` = $TIME_BACKUP ]; then dobackup fi done # Fim Fabio. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
Pessoal: Desculpem-me pegar a discussão pela metade. Mas por um acasa vcs já tentaram considerar que a cron não monta o ambiente antes de executar o script. Ou seja, a variável PATH, entre outras, não está setada. Tentem usar o caminho completo para cada um dos binários, ou carregar o ambiente no começo do script. Fabio. On 10/20/05, Yuri Robinson [EMAIL PROTECTED] wrote: Escreva o script em perl, faça algo diferente, DESCUBRA qual o erro, mas usar esse script por causa de uma tarefa é um absurdo, na minha opinião! até Yuri Robinson --- Fabio Guerrazzi [EMAIL PROTECTED] escreveu: quote quem=Marcos Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usuários. O script é interrompido do nada. Muito estranho. Uma vez vi uma mensagem semelhante na linux-br, com o cron se recusando a rodar scripts de forma correta. O Leonardo Pinto enviou um script como uma forma de não usar o cron. Segue abaixo: #!/bin/bash # Daemon para realizar Backup Administrativos # # Author: Leonardo Pinto # Hora do backup agendado TIME_BACKUP=04:00:00 # User specific environment LANGUAGE LANG=pt_BR export LANG dobackup () { FILE=-`date '+%a'` echo Iniciando Backup$FILE... /tmp/backup.log tar -czvf usuario.tar.gz /home/usuario /tmp/backup.log echo Backup concluído !! /tmp/backup.log } # Loop infinito while [ True ]; do sleep 1 if [ `date '+%H:%M:%S'` = $TIME_BACKUP ]; then dobackup fi done # Fim Fabio. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
J cheguei a fazer um script em C que executava determinadas aes a cada X horas, funciona legal e no consome processamento nenhum, mas estou curioso em saber porq est dando esse erro com o cron, sempre usei o cron e nunca aconteceu isso. Estou reinstalando o pacote do cron pra ver no que d. J posto o resultado. Em Qui, 2005-10-20 s 17:21 -0300, Yuri Robinson escreveu: Escreva o script em perl, faa algo diferente, DESCUBRA qual o erro, mas usar esse script por causa de uma tarefa um absurdo, na minha opinio! at Yuri Robinson --- Fabio Guerrazzi [EMAIL PROTECTED] escreveu: quote quem=Marcos Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usurios. O script interrompido do nada. Muito estranho. Uma vez vi uma mensagem semelhante na linux-br, com o cron se recusando a rodar scripts de forma correta. O Leonardo Pinto enviou um script como uma forma de no usar o cron. Segue abaixo: #!/bin/bash # Daemon para realizar Backup Administrativos # # Author: Leonardo Pinto # Hora do backup agendado TIME_BACKUP=04:00:00 # User specific environment LANGUAGE LANG=pt_BR export LANG dobackup () { FILE=-`date '+%a'` echo Iniciando Backup$FILE... /tmp/backup.log tar -czvf usuario.tar.gz /home/usuario /tmp/backup.log echo Backup concludo !! /tmp/backup.log } # Loop infinito while [ True ]; do sleep 1 if [ `date '+%H:%M:%S'` = $TIME_BACKUP ]; then dobackup fi done # Fim Fabio. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] ___ Promoo Yahoo! Acesso Grtis: a cada hora navegada voc acumula cupons e concorre a mais de 500 prmios! Participe! http://yahoo.fbiz.com.br/
Re: Script não roda completo pelo crontab
Est setado o PATH no inicio. O curioso que ele chega a executar o script de backup, s que interrompido em determinado ponto. Antes de ser interrompido ele roda o tar normalmente. [EMAIL PROTECTED]:/scripts# cat /etc/crontab # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file. # This file also has a username field, that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly 52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly # # minuto hora diames mes diasemana usuario comando 07 1 * * * root sh /scripts/backup.sh 37 1 * * * root sh /scripts/bkpusers.sh Em Qui, 2005-10-20 s 18:27 -0200, Fabio A Mazzarino escreveu: Pessoal: Desculpem-me pegar a discusso pela metade. Mas por um acasa vcs j tentaram considerar que a cron no monta o ambiente antes de executar o script. Ou seja, a varivel PATH, entre outras, no est setada. Tentem usar o caminho completo para cada um dos binrios, ou carregar o ambiente no comeo do script. Fabio. On 10/20/05, Yuri Robinson [EMAIL PROTECTED] wrote: Escreva o script em perl, faa algo diferente, DESCUBRA qual o erro, mas usar esse script por causa de uma tarefa um absurdo, na minha opinio! at Yuri Robinson --- Fabio Guerrazzi [EMAIL PROTECTED] escreveu: quote quem=Marcos Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usurios. O script interrompido do nada. Muito estranho. Uma vez vi uma mensagem semelhante na linux-br, com o cron se recusando a rodar scripts de forma correta. O Leonardo Pinto enviou um script como uma forma de no usar o cron. Segue abaixo: #!/bin/bash # Daemon para realizar Backup Administrativos # # Author: Leonardo Pinto # Hora do backup agendado TIME_BACKUP=04:00:00 # User specific environment LANGUAGE LANG=pt_BR export LANG dobackup () { FILE=-`date '+%a'` echo Iniciando Backup$FILE... /tmp/backup.log tar -czvf usuario.tar.gz /home/usuario /tmp/backup.log echo Backup concludo !! /tmp/backup.log } # Loop infinito while [ True ]; do sleep 1 if [ `date '+%H:%M:%S'` = $TIME_BACKUP ]; then dobackup fi done # Fim Fabio. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] ___ Promoo Yahoo! Acesso Grtis: a cada hora navegada voc acumula cupons e concorre a mais de 500 prmios! Participe! http://yahoo.fbiz.com.br/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
É exatamente como penso Marcos. Sinceramente, essa de comportamente estranho do cron com shell script não me desce, pra mim isso vem de algum erro, algum detalhe que vc não postou aqui, algo que está escapando. Assim como disse o Fábio, o cron não tem o ambiente ideal pra execução de scripts, e isso gera muitos erros, muitas vezes comuns (eu um tempo atrás os tinha direto). Mas escrever um script que tem um sleep 1 só pra executar uma ou outra tarefa já é demais, na minha opinião, é claro :). até Yuri Robinson --- Marcos [EMAIL PROTECTED] escreveu: Já cheguei a fazer um script em C que executava determinadas ações a cada X horas, funciona legal e não consome processamento nenhum, mas estou curioso em saber porq está dando esse erro com o cron, sempre usei o cron e nunca aconteceu isso. Estou reinstalando o pacote do cron pra ver no que dá. Já posto o resultado. Em Qui, 2005-10-20 às 17:21 -0300, Yuri Robinson escreveu: Escreva o script em perl, faça algo diferente, DESCUBRA qual o erro, mas usar esse script por causa de uma tarefa é um absurdo, na minha opinião! até Yuri Robinson --- Fabio Guerrazzi [EMAIL PROTECTED] escreveu: quote quem=Marcos Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usuários. O script é interrompido do nada. Muito estranho. Uma vez vi uma mensagem semelhante na linux-br, com o cron se recusando a rodar scripts de forma correta. O Leonardo Pinto enviou um script como uma forma de não usar o cron. Segue abaixo: #!/bin/bash # Daemon para realizar Backup Administrativos # # Author: Leonardo Pinto # Hora do backup agendado TIME_BACKUP=04:00:00 # User specific environment LANGUAGE LANG=pt_BR export LANG dobackup () { FILE=-`date '+%a'` echo Iniciando Backup$FILE... /tmp/backup.log tar -czvf usuario.tar.gz /home/usuario /tmp/backup.log echo Backup concluído !! /tmp/backup.log } # Loop infinito while [ True ]; do sleep 1 if [ `date '+%H:%M:%S'` = $TIME_BACKUP ]; then dobackup fi done # Fim Fabio. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ ___ Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
Reinstalei o cron, sem chance, mesma coisa. ii cron 3.0pl1-86 management of regular background processing Em Qui, 2005-10-20 s 18:26 -0200, Marcos escreveu: J cheguei a fazer um script em C que executava determinadas aes a cada X horas, funciona legal e no consome processamento nenhum, mas estou curioso em saber porq est dando esse erro com o cron, sempre usei o cron e nunca aconteceu isso. Estou reinstalando o pacote do cron pra ver no que d. J posto o resultado. Em Qui, 2005-10-20 s 17:21 -0300, Yuri Robinson escreveu: Escreva o script em perl, faa algo diferente, DESCUBRA qual o erro, mas usar esse script por causa de uma tarefa um absurdo, na minha opinio! at Yuri Robinson --- Fabio Guerrazzi [EMAIL PROTECTED] escreveu: quote quem=Marcos Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usurios. O script interrompido do nada. Muito estranho. Uma vez vi uma mensagem semelhante na linux-br, com o cron se recusando a rodar scripts de forma correta. O Leonardo Pinto enviou um script como uma forma de no usar o cron. Segue abaixo: #!/bin/bash # Daemon para realizar Backup Administrativos # # Author: Leonardo Pinto # Hora do backup agendado TIME_BACKUP=04:00:00 # User specific environment LANGUAGE LANG=pt_BR export LANG dobackup () { FILE=-`date '+%a'` echo Iniciando Backup$FILE... /tmp/backup.log tar -czvf usuario.tar.gz /home/usuario /tmp/backup.log echo Backup concludo !! /tmp/backup.log } # Loop infinito while [ True ]; do sleep 1 if [ `date '+%H:%M:%S'` = $TIME_BACKUP ]; then dobackup fi done # Fim Fabio. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] ___ Promoo Yahoo! Acesso Grtis: a cada hora navegada voc acumula cupons e concorre a mais de 500 prmios! Participe! http://yahoo.fbiz.com.br/ -- Marcos [EMAIL PROTECTED]
Re: Script não roda completo pelo crontab
Funcionou parcialmente: O script dessa maneira funciona. Comentei a linha do echo e o cron rodou o script at o final mandando a saida do outro echo para o arquivo. Foram todos os usuarios certinho. Se eu descomente o primeiro echo ele interrompido em certo ponto. Vou deixar rodando sem o primeiro echo e descomentar o tar pra ver se ele vai fazer o tar de todo mundo. Amanh posto o resultado. Valeu a ateno de todos. [EMAIL PROTECTED]:~# cat /scripts/bkpusers.sh #!/bin/sh USUARIOS ## #ls /dados/home /scripts/users.txt for i in `ls /dados/home`; do #echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$i.tar.gz /dados/home/$i echo tar -czf /backup/$i.tar.gz /dados/home/$i - `date` /scripts/loguserbkp.txt done Em Qui, 2005-10-20 s 18:35 -0200, Marcos escreveu: Est setado o PATH no inicio. O curioso que ele chega a executar o script de backup, s que interrompido em determinado ponto. Antes de ser interrompido ele roda o tar normalmente. [EMAIL PROTECTED]:/scripts# cat /etc/crontab # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file. # This file also has a username field, that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly 52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly # # minuto hora diames mes diasemana usuario comando 07 1 * * * root sh /scripts/backup.sh 37 1 * * * root sh /scripts/bkpusers.sh Em Qui, 2005-10-20 s 18:27 -0200, Fabio A Mazzarino escreveu: Pessoal: Desculpem-me pegar a discusso pela metade. Mas por um acasa vcs j tentaram considerar que a cron no monta o ambiente antes de executar o script. Ou seja, a varivel PATH, entre outras, no est setada. Tentem usar o caminho completo para cada um dos binrios, ou carregar o ambiente no comeo do script. Fabio. On 10/20/05, Yuri Robinson [EMAIL PROTECTED] wrote: Escreva o script em perl, faa algo diferente, DESCUBRA qual o erro, mas usar esse script por causa de uma tarefa um absurdo, na minha opinio! at Yuri Robinson --- Fabio Guerrazzi [EMAIL PROTECTED] escreveu: quote quem=Marcos Deixei o script assim pra testar, comentando a linha do tar #!/bin/sh USUARIOS ## for k in /dados/home/*; do echo tar -czf /backup/$k.tar.gz /dados/home/$k #tar -czf /backup/$k.tar.gz /dados/home/$k echo tar -czf /backup/$k.tar.gz /dados/home/$k - `date` /scripts/loguserbkp.txt done Dessa maneira ocorre o seguinte, direto no shell roda normal, lista todos os usuarios normalmetne. Pelo cron, ele lista apenas 49usurios. O script interrompido do nada. Muito estranho. Uma vez vi uma mensagem semelhante na linux-br, com o cron se recusando a rodar scripts de forma correta. O Leonardo Pinto enviou um script como uma forma de no usar o cron. Segue abaixo: #!/bin/bash # Daemon para realizar Backup Administrativos # # Author: Leonardo Pinto # Hora do backup agendado TIME_BACKUP=04:00:00 # User specific environment LANGUAGE LANG=pt_BR export LANG dobackup () { FILE=-`date '+%a'` echo Iniciando Backup$FILE... /tmp/backup.log tar -czvf usuario.tar.gz /home/usuario /tmp/backup.log echo Backup concludo !! /tmp/backup.log } # Loop infinito while [ True ]; do sleep 1 if [ `date '+%H:%M:%S'` = $TIME_BACKUP ]; then dobackup fi done # Fim Fabio. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED] ___ Promoo Yahoo! Acesso Grtis: a cada hora navegada voc acumula cupons e concorre a mais de 500 prmios! Participe! http://yahoo.fbiz.com.br/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]