这问题够隐蔽,折腾了近两个小时。
命令 git checkout tagname 手工执行都正常
但在crontab运行时发现分支一直切不过去。
后来告诉是crontab默认的 path 设置和系统自身的有区别
git 命令放在 /usr/local/bin/ 目录
而crontab 却在 /sbin:/bin:/usr/sbin:/usr/bin 这几个目录下找,当然运行不了 git 命令了
目前解决办法是手工添加git路径前辍
/usr/local/bin/git checkout tagname
#cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
whereis git
git: /usr/local/bin/git