1

我写了一个脚本来自动备份一个网站,这个脚本会将资源推送到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/*`
4

1 回答 1

0

您应该首先在您自己的帐户下测试该脚本,其中git config user.name必须user.email正确设置。

然后你应该注册你的脚本 top cron,确保它是作为你执行的,而不是作为root每个用户都有他/她自己的crontab.

以不同的用户身份运行cron作业:

su - <user> -c <command or script>

OP Yulong Tian在评论中确认:

我通过root在 crontab 中更改用户(不像以前那样)解决了我的问题。

于 2013-05-13T07:18:32.043 回答