我写了一个脚本来自动备份网站,这个脚本会将资源推送到 github 。我在 crontab 中编写了一些代码,让它自动执行。但是,我不知道为什么资源无法推动。
我可以看到来自.git
的头部已被修改(这意味着成功提交)。我想问题是用户名不正确。
以下信息是自动备份脚本的输出。
Committer: root <root@xxxx.(none)>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email you@example.com
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
1 file changed, 14 insertions(+), 14 deletions(-)
我该如何处理?
crontab中的命令:
*/2 * * * * root /var/backWiki.sh >/home/xxx/Tmp/4.txt
以下是此shell脚本的主要部分:
git pull originTyl master
git add -A
echo '2'
git commit -a -m $nowtime
echo '1'
git push originTyl master
echo '3'
origninTyl表示:
`[remote "originTyl"]`
`url = https://accoutName:password@github.com/xxxx/xxxx.git`
`fetch = +refs/heads/*:refs/remotes/originTyl/*`
答案 0 :(得分:0)
您应首先在自己的帐户下测试该脚本,其中必须正确设置git config user.name
和user.email
。
然后,您应该在脚本cron
前面注册,确保它是executed as you, not as root
,each user having his/her own crontab
。
以其他用户身份运行
cron
个工作:
su - <user> -c <command or script>
OP Yulong Tian确认in the comments:
我通过在crontab中更改用户(而不是之前的
root
)解决了我的问题。