Usar Rsync no cron

Iniciado por g4p, 30 de Setembro de 2013, 16:46

tópico anterior - próximo tópico

g4p

Preciso fazer backup automático todo dia de 01h00. Abrir o crontab e quando estava agendando a tarefa, veio a seguinte dúvida em minha mente:

Pra usar o rsync requer permissão. Se eu colocar sudo antes, vai pedir pra eu digitar a senha do usuário e eu não estarei no momento pra digitar.

Alguém tem alguma solução pra isso?

jeflui

Utilize o /etc/crontab e informe o root como usuário que irá executar a tarefa.

g4p

Sem querer ser chato..

Poderia ser um pouco mais claro?

Arthur Bernardes


g4p

Sei como funciona sim, inclusive eu ia adicionar uma linha da seguinte maneira:

30 01 * * * sudo rsync -av /srv/storage1/ /srv/hd_storage_rede/

Essa linha vai ser executada todo dia às 01h30 da manhã. Sendo que estou usando o sudo e ele vai pedir pra inserir a senha..

É isso que eu quero resolver, entendeu?

Arthur Bernardes

Então porque ao invés de usar o sudo, coloque como usuário root?

30 01 * * * root rsync -av /srv/storage1/ /srv/hd_storage_rede/

g4p

Eu não terei que setar a senha do root em nenhum lugar dessa forma?  :o

Arthur Bernardes


g4p

Vou ver amanhã, né..

Abrir o crontab -e com sudo e inserir a linha:

00 01 * * * root rsync -av /srv/storage1/ /srv/hd_storage_rede/

g4p

É, parece que não deu certo.  >:(

zekkerj

#10
O sudo não funciona no cron, vc tem que colocar sua chamada diretamente no crontab do root (comando "crontab -e"), em um dos diretórios de cron (/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly ou /etc/cron.monthly), ou no /etc/cron.d especificando o usuário root.

Observe primeiro vc não precisa ser root pra rodar o rsync sem senha; e segundo, que ser root não basta pro rsync rodar sem pedir senha.

Pra que o rsync funcione sem senha, vc tem que ter um certificado de criptografia. Esse certificado é instalado no SSH, de forma que o SSH possa ser usado sem senha. Mais detalhes:
http://www.hardware.com.br/dicas/ssh-login-automatico.html

Note que vc instala a chave pública para um usuário, que não precisa ser o root. A partir daí, quem tiver a chave privada correspondente será capaz de se conectar à sua máquina nesse usuário sem digitar uma senha (supondo que vc tenha gerado a chave privada sem senha, ou que esteja usando o ssh-agent).
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

g4p

Olha só, li alguns tutoriais na internet e fiz da seguinte maneira. Vocês, que tem mais experiência, digam-me se está correto, por favor.

ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Beleza, criei a chave e joguei ela em chaves autorizadas para se conectar usando o login que eu estava usando no momento que criei a chave. Ótimo!

Aí se eu for acessar o servidor pelo PuTTy, sem ser por linha de comando, como faço pra inserir o local da chave na minha máquina?

Agradeço desde já.

zekkerj

o comando "ssh-copy-id" leva a chave privada correspondente pra máquina que vc quer acessar.

Depois é só acessar a máquina.
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

g4p

Mas eu acessando o servidor por o PuTTy numa máquina Ruindows, de que forma eu vou inserir a chave criptográfica?

zekkerj

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