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.
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
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
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