Usando o rsync em um cronjob quando uma senha é necessária

1

Basicamente eu tenho um script bash que busca dados do meu servidor para realizar um backup.

Como agora é necessário iniciar o script manualmente, digite a senha e aguarde a conclusão.

Eu gostaria de configurar um cronjob que lide com o backup.

Mas eu realmente não sei como lidar com a senha em um cronjob.

Além disso, não posso usar chaves para isso, porque o meu provedor não fornece os mecanismos necessários para configurá-los.

Tenho acesso SSH à minha pasta pessoal, mas na minha pasta pessoal não tenho acesso de gravação, exceto o diretório http(s)docs . Portanto, não consigo criar o diretório ~/.ssh/ necessário e seu conteúdo para login por meio de chaves.

    
por NobbZ 15.12.2011 / 00:35

2 respostas

1

Este é o comando que eu uso para fazer backup em outra máquina:

rsync -av -e "ssh -i /root/ssh-rsync-valhalla-key" \
  --exclude lost+found \
  --delete-before \
  /mnt/backup/ \
  [email protected]:/cygdrive/r/\!Backups/Niflheim &

Então você pode usar o -i para passar um arquivo de chaves para o ssh. Claro, no seu exemplo, isso significa que o próprio arquivo-chave será compartilhado via HTTP se alguém descobrir o nome do arquivo.

    
por 15.12.2011 / 03:25
0

Você consegue iniciar um daemon e mantê-lo em execução? Você pode executar rsync no modo daemon, se for o caso.

Em seguida, no cliente, você se conectaria com um rsync:// url. Para autorização, você poderia limitá-lo apenas ao seu IP, não acho que haja um equivalente de chaves SSH para ele.

Você precisa de um rsyncd.conf, que pode estar em qualquer lugar, com algo como:

[backup]
    path = /path/you/want/to/sync
    read only = true
    hosts allow = 1.2.3.4

Em seguida, inicie o daemon ...

rsync --daemon --config=rsyncd.conf

E então você pode tentar sincronizar com ele:

rsync -av rsync://server.ip/backup /local/backup/dir
    
por 15.12.2011 / 01:41