2017-08-12 5 views
0

J'ai un référentiel pour stocker toutes mes configs (par exemple, .ssh/config). De temps en temps, je besoin d'une sauvegarde eux, donc je dois exécuter ces commandesUtilisation de git comme outil de sauvegarde avec les alias cron et ssh

git commit -am 'Auto git backup `date -I`' 
git push origin master 

Il est assez ennuyeux, donc je décidé de faire une tâche cron, qui court script simple avec ces lignes ci-dessus. J'ai couru crontab -e et ajouté une nouvelle ligne à la fin du fichier. J'ai également remplacé git avec which git à l'intérieur du script. git commit commande fonctionne parfaitement contrairement à git push. Lorsque j'ai fait quelques impressions de débogage, j'ai obtenu

ssh: Could not resolve hostname bitbucket.org: Name or service not known 
fatal: Could not read from remote repository. 
Please make sure you have the correct access rights 
and the repository exists. 

Mais quand je lance un script manuellement, cela fonctionne. Je pense qu'il est à cause d'alias SSH dans mon .ssh/config, qui ressemble à

Host  bitbucket.org-personal 
HostName bitbucket.org 
PreferredAuthentications publickey 
IdentityFile ~/.ssh/id_rsa 

Host bitbucket.org-work 
HostName bitbucket.org 
PreferredAuthentications publickey 
IdentityFile ~/.ssh/another_id_rsa 

Quelqu'un a idée, comment propager des alias SSH pour l'environnement, qui exécute des travaux cron? Aussi peut-être que je me trompe et que le problème est causé par autre chose.

+1

Vous ne savez pas à quoi ressemble la ligne que vous avez écrite dans le crontab. Êtes-vous sûr que la sauvegarde est exécutée lorsque le réseau est en cours? – Jakuje

+0

La ligne dans crontab est '@reboot/home/utilisateur/scripts/backup-and-commit.sh' et j'ai ajouté quelques messages de débogage et je suis sûr que le travail cron fonctionne comme je le veux. Pensez-vous qu'il ne pousse pas les commits en raison de problèmes de réseau? – 32cupo

+1

Oui. L'erreur est évidente que vous n'avez pas de réseau. Essayez de reporter l'exécution de quelques minutes pour attendre le réseau. – Jakuje

Répondre