cron.daily

Iniciado por alairamaral, 16 de Março de 2014, 10:44

tópico anterior - próximo tópico

alairamaral

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:

#!/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?

selvaking

#1
Citação de: alairamaral online 16 de Março de 2014, 10:44
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:
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Só funciona as 6:25.
Citação de: alairamaral online 16 de Março de 2014, 10:44
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?

Citação de: alairamaral online 16 de Março de 2014, 10:44
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.
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

Citação de: alairamaral online 16 de Março de 2014, 10:44
Abaixo está meu script é bem simples:

#!/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.
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

alairamaral

Fala ai cara.
Eu fiz o que vc sugeriu inseri a seguinte linha no crontab:
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.
/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.

selvaking

#3
Citação de: alairamaral online 16 de Março de 2014, 16:53
Fala ai cara.
Eu fiz o que vc sugeriu inseri a seguinte linha no crontab:
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!
Citação de: alairamaral online 16 de Março de 2014, 16:53
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:
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.
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

alairamaral

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:

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)



selvaking

Coloque a saida deste comando:
ls -lhF /home/neto/thunder*
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

alairamaral

Crash Reports/
o660awxe.default/
profiles.ini

selvaking

não resolveu muito. Queria saber quem é o dono da pasta thunderbird.

ls -lhF /home/neto/


No crontab do usuário não é preciso colocar usuário que vai executar o comando.
Citar45 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:
Citar45 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.
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049

zekkerj

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
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

alairamaral

Sou o único usuário do PC.
Inseri a seguinte linha no crontab do meu usuário:
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:
# 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.

alairamaral

Amigos matei o problema, foi falta de atenção minha:
Veja:

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.

selvaking

Citação de: zekkerj online 16 de Março de 2014, 19:14
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!
Dê-me um computador com o Tux que movo o mundo!

Linux User #323049