Fórum Ubuntu Linux - PT
Suporte Técnico => Servidores => Tópico iniciado 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:
#!/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?
-
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.
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.
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:
#!/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.
-
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.
-
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
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:
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.
-
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)
-
Coloque a saida deste comando:
ls -lhF /home/neto/thunder*
-
Crash Reports/
o660awxe.default/
profiles.ini
-
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.
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:
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.
-
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
-
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.
-
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.
-
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!