2017-08-12 60 views
0

我有一个用于存储所有配置(例如.ssh/config)的存储库。不时,我需要一个备份他们,所以我需要运行这些命令使用git作为cron和ssh别名的备份工具

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

据烦了,所以我决定做一个cron作业,运行上面这几行简单的脚本。我运行了crontab -e并在文件末尾添加了新行。我还在脚本内部用which git替换了gitgit commit命令与git push完美对比。当我做了一些调试打印我得到

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. 

但是,当我手动运行脚本,它的工作原理。我想这是因为SSH的别名,我.ssh/config,它看起来像

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 

是否有人有想法,如何传播SSH别名环境,运行cron作业?也许我错了,问题是由别的东西造成的。

+1

你错过了你写入crontab的行的样子。你确定网络启动时备份是否运行? – Jakuje

+0

crontab中的行是'@reboot/home/user/scripts/backup-and-commit.sh',我添加了一些调试消息,并且我确定cron作业正常工作。你认为它不会因网络问题而提交提交? – 32cupo

+1

是的。错误很明显,你没有网络。尝试推迟运行几分钟以等待网络。 – Jakuje

回答