【发布时间】:2015-11-25 18:35:38
【问题描述】:
我有点奇怪,这给我带来了一些问题。 我有一个运行 git 的 cron 作业,基本上“备份”了一堆开发网站。
我还将这个 cron 作业放在我们运行的另外两台服务器上,因为这两台服务器都有直接编辑的特定网站,因此没有自己的备份。
开发服务器和第一个实时服务器都可以正常运行此作业(自定义 sh 文件),但最后一个会导致整个服务器崩溃,并在几秒钟内关闭大约 10 个不同的网站。由于每天都在运行,这确实不是一件好事。
这是运行的 .sh 文件:
/root/git.sh
#!/bin/sh
git=$(which git)
dt=$(date +"%d-%m-%y")
eval `/usr/bin/ssh-agent -s`
/usr/bin/ssh-add /root/git
shopt -s nullglob
shopt -s dotglob
cd /home/
for d1 in */ ; do
cd /home/$d1
for d2 in */ ; do
cd /home/$d1/$d2
if [ ! -d ".git" ]; then
echo Skipping $d2
continue
fi
echo Adding repo at $d2
git add -A
git commit -a -m $dt
git push --all origin
cd ..
done
done
cd ~
shopt -u nullglob
(/root/git 显然是一个私钥文件,当然可以)
以及运行它的 cron 命令:
/etc/cron.d/git
# Git Backup
MAILTO=""
0 19 * * * root /usr/local/bin/setlock -n /tmp/cronlock.3788462754.179891 sh -c $'/root/git.sh &> /dev/null'
所以,除了我自己在 bourne shell 上表现糟糕之外,我不知道发生了什么。如果我知道日志文件在哪里,也许吧,但我不知道。
【问题讨论】: