Fórum Ubuntu Linux - PT

Suporte Técnico => Servidores => Tópico iniciado por: alairamaral em 16 de MAR?O de 2014, 10:44

Título: cron.daily
Enviado por: alairamaral em 16 de MAR?O de 2014, 10:44
Olá amigos.
Recentemente eu fiz um script de backup para o meu PC.
Este script faz o backup das pastas thunderbird e Documentos, como não importa o horário pois eu ligo o computador em horários diferentes então coloquei meu script na pasta cron.daily. Não está funcionando, se eu for executar o meu script manualmente ele funciona tranquilo, mas pelo cron.daily nada.
Para testar eu inseri o script na pasta cron.hourly, fiquei esperando matando o tempo jogando ;D, mas também não funcionou.
Reinicie o serviço do Cron e nada também.

Abaixo está meu script é bem simples:

Código: [Selecionar]
#!/bin/sh
tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/thunderbird /home/neto/Documentos  >> /home/neto/bkp.log

O que poderia está acontecendo?
Título: Re: cron.daily
Enviado por: selvaking em 16 de MAR?O de 2014, 13:05
Este script faz o backup das pastas thunderbird e Documentos, como não importa o horário pois eu ligo o computador em horários diferentes então coloquei meu script na pasta cron.daily.
Mesmo na pasta cron.daily o horário importa sim. O backup será feito diariamente no mesmo horário definido no arquivo /etc/crontab, se estava pra ser feito as 6:25 da manhã e o computador estava desligado a esta hora, só no próximo dia as 6:25.
A minha linha do /etc/crontab para backup diários esta assim:
Código: [Selecionar]
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )Só funciona as 6:25.
Não está funcionando, se eu for executar o meu script manualmente ele funciona tranquilo, mas pelo cron.daily nada.
Qual o comando que vc usa para ele funcionar manualmente?

Para testar eu inseri o script na pasta cron.hourly, fiquei esperando matando o tempo jogando ;D, mas também não funcionou.
Reinicie o serviço do Cron e nada também.
Na realidade vc não precisa inserir script nesta pasta. O interessante é vc criar um link simbólico para aonde está o script.
Ou criar um crontab para o usuário com o comando "crontab -e", vai abrir o arquivo do usuário se existir, ou um arquivo de exemplo que se vc editar e salvar, passa a ser o arquivo do usuário.
O arquivo criado é salvo na pasta /var/spool/cron/crontabs.
Vc não precisa criar um script é só colocar o comando desejado no fim do script de exemplo.
A linha abaixo vai salvar todos os dias as 5 horas.
Código: [Selecionar]
0 5 * * * tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/thunderbird /home/neto/Documentos  >> /home/neto/bkp.log
Abaixo está meu script é bem simples:

Código: [Selecionar]
#!/bin/sh
tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/thunderbird /home/neto/Documentos  >> /home/neto/bkp.log

O que poderia está acontecendo?
Como já foi dito não crie um script só pra isto. Com o comando "crontab -e", vc cria um script do cron para o usuário. É só colocar o comando nele informando o minuto, hora, dia, mês seguido do comando.
Título: Re: cron.daily
Enviado por: alairamaral em 16 de MAR?O de 2014, 16:53
Fala ai cara.
Eu fiz o que vc sugeriu inseri a seguinte linha no crontab:
Código: [Selecionar]
45 16 * * * neto   tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/thunderbird /home/neto/Documentos  >> /home/neto/bkp.log
Mas o esquisito é que não está funcionando, usei esse horário para testar.
Olhei no log e veja... não aconteceu nada.
Código: [Selecionar]
/neto/08E0-D478/Backup\ Neto$(date +)
Mar 16 16:45:01 neto-M61PME-S2P CRON[2686]: (CRON) info (No MTA installed, discarding output)
Mar 16 16:45:26 neto-M61PME-S2P dbus[590]: [system] Activating service name='org.freedesktop.hostname1' (using servicehelper)
Mar 16 16:45:26 neto-M61PME-S2P dbus[590]: [system] Successfully activated service 'org.freedesktop.hostname1'
Mar 16 16:46:52 neto-M61PME-S2P kernel: [  863.527161] usb 2-2: reset high-speed USB device number 2 using ehci-pci
Mar 16 16:49:51 neto-M61PME-S2P whoopsie[1035]: online
Esquisito isso, antes o cron estava funcionando normalmente tive que reinstalar o ubuntu e esqueci de fazer o bkp do cron.
Título: Re: cron.daily
Enviado por: selvaking em 16 de MAR?O de 2014, 17:28
Fala ai cara.
Eu fiz o que vc sugeriu inseri a seguinte linha no crontab:
Código: [Selecionar]
45 16 * * * neto   tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/thunderbird /home/neto/Documentos  >> /home/neto/bkp.log
Mas o esquisito é que não está funcionando, usei esse horário para testar.
Olhei no log e veja... não aconteceu nada.
Citar
/neto/08E0-D478/Backup\ Neto$(date +)
Mar 16 16:45:01 neto-M61PME-S2P CRON[2686]: (CRON) info (No MTA installed, discarding output)
Mar 16 16:45:26 neto-M61PME-S2P dbus[590]: [system] Activating service name='org.freedesktop.hostname1' (using servicehelper)
Mar 16 16:45:26 neto-M61PME-S2P dbus[590]: [system] Successfully activated service 'org.freedesktop.hostname1'
Mar 16 16:46:52 neto-M61PME-S2P kernel: [  863.527161] usb 2-2: reset high-speed USB device number 2 using ehci-pci
Mar 16 16:49:51 neto-M61PME-S2P whoopsie[1035]: online
Pelo menos ele tentou e postou uma informação. Veja!
Esquisito isso, antes o cron estava funcionando normalmente tive que reinstalar o ubuntu e esqueci de fazer o bkp do cron.
A sua linha do thunderbird está correta? thunderbird não é uma pasta oculta. Tem um ponto na frente assim: ".thunderbird"
refaça o seu crontab do usuário. assim:
Código: [Selecionar]
45 17 * * * neto   tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/Documentos  >> /home/neto/bkp.log

Veja se funciona sem a linha do thunderbird.
Título: Re: cron.daily
Enviado por: alairamaral em 16 de MAR?O de 2014, 17:35
Minha pasta thunderbird não é oculta, quando eu restaurei o bkp eu esqueci de colocar a mesma oculta ai eu deixei rsrs.
O esquisito é que mesmo se não o tar não identifica se a pasta, era para gerar no log.
Eu fiz o seguinte ainda agora... eu inseri a linha no crontab como root, o syslog execulta mas não acontece nada. Nem o log ele gera.
Veja:

Código: [Selecionar]
Mar 16 17:24:06 neto-M61PME-S2P crontab[3663]: (root) BEGIN EDIT (root)
Mar 16 17:25:08 neto-M61PME-S2P crontab[3663]: (root) REPLACE (root)
Mar 16 17:25:08 neto-M61PME-S2P crontab[3663]: (root) END EDIT (root)
Mar 16 17:26:01 neto-M61PME-S2P cron[3068]: (root) RELOAD (crontabs/root)
Mar 16 17:28:01 neto-M61PME-S2P CRON[3677]: (root) CMD (neto  tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +)
Mar 16 17:28:01 neto-M61PME-S2P CRON[3676]: (CRON) info (No MTA installed, discarding output)

Título: Re: cron.daily
Enviado por: selvaking em 16 de MAR?O de 2014, 17:52
Coloque a saida deste comando:
Código: [Selecionar]
ls -lhF /home/neto/thunder*
Título: Re: cron.daily
Enviado por: alairamaral em 16 de MAR?O de 2014, 17:54
Código: [Selecionar]
Crash Reports/
o660awxe.default/
profiles.ini
Título: Re: cron.daily
Enviado por: selvaking em 16 de MAR?O de 2014, 18:36
não resolveu muito. Queria saber quem é o dono da pasta thunderbird.

Código: [Selecionar]
ls -lhF /home/neto/

No crontab do usuário não é preciso colocar usuário que vai executar o comando.
Citar
45 16 * * * neto   tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/thunderbird /home/neto/Documentos  >> /home/neto/bkp.log

Coloca sem o neto, assim:
Citar
45 16 * * * tar -cvvzf /media/neto/08E0-D478/Backup\ Neto$(date +%Y_%m_%d).tar.gz /home/neto/thunderbird /home/neto/Documentos  >> /home/neto/bkp.log

Acho que o problema está na parte em negrito. Se não estou enganado quando vc utiliza o comando no terminal com um simbolo de percetagem só funciona, já num script bash vc tem que dobrar.

Vou ter de consultar os pergaminhos. Se alguém souber de bate-pronto é só dizer pra ele. Estou saindo agora pra pegar um cineminha.

Mas tenta colocar um nome pro arquivo sem variável, se o CRON fizer o backup é PQ o problema era isto e depois pensamos como fazer isto.
Título: Re: cron.daily
Enviado por: zekkerj em 16 de MAR?O de 2014, 19:14
Opa, blz?
Seguinte, sempre que vc for executar alguma coisa pelo cron, verifique 3 vezes pra confirmar que você não dependa de nada do seu ambiente --- nem do $PATH. Ou seja, sempre use os comandos com o caminho completo.

Sobre a dúvida do selvaking ("Queria saber quem é o dono da pasta thunderbird.") o melhor comando pra isso é o "namei". tipo,

namei -m /home/neto/thunderbird
Título: Re: cron.daily
Enviado por: alairamaral em 16 de MAR?O de 2014, 23:06
Sou o único usuário do PC.
Inseri a seguinte linha no crontab do meu usuário:
Código: [Selecionar]
50 22 * * * tar -cvvzf /media/neto/08E0-D478/Backup.tar.gz /home/neto/thunderbird /home/neto/Documentos /home/neto/Downloads /home/neto/Músicas  >> /bkp.log
Estou fazendo uma especie de backup incremental, envies de criar várias versões de backup.
Estou redefinindo o nome do arquivo tar.gz para Backup e mesmo assim ainda não está funcionando.
Veja como está o meu Crontab:
Código: [Selecionar]
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
50 22 * * * tar -cvvzf /media/neto/08E0-D478/Backup.tar.gz /home/neto/thunderbird /home/neto/Documentos /home/neto/Downloads /home/neto/Músicas  >> /bkp.log
neto@neto-M61PME-S2P:~$ crontab -e
crontab: installing new crontab
neto@neto-M61PME-S2P:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
04 23 * * * tar -cvvzf /media/neto/08E0-D478/Backup.tar.gz /home/neto/thunderbird /home/neto/Documentos /home/neto/Downloads /home/neto/Músicas  >> /bkp.log
Eu nunca tive problema com isso não entendo o porque não está funcionando, acho que estou esquecendo alguma coisa.
Título: Re: cron.daily
Enviado por: alairamaral em 16 de MAR?O de 2014, 23:26
Amigos matei o problema, foi falta de atenção minha:
Veja:

Código: [Selecionar]
50 22 * * * tar -cvvzf /media/neto/08E0-D478/Backup.tar.gz /home/neto/thunderbird /home/neto/Documentos /home/neto/Downloads /home/neto/Músicas  >> [b]/bkp.log[/b]Era isso que estava causando erro. :D
Valeu pela força pessoal.
Título: Re: cron.daily
Enviado por: selvaking em 17 de MAR?O de 2014, 17:54
Sobre a dúvida do selvaking ("Queria saber quem é o dono da pasta thunderbird.") o melhor comando pra isso é o "namei". tipo,

namei -m /home/neto/thunderbird

Blz Oráculo!

Nunca tinha usado este comando.
Vivendo e aprendendo!