设置 anacron 进行版本控制更新

设置 anacron 进行版本控制更新

我将一些配置文件存储在版本控制中。最近我尝试设置每日 anacron 作业,这样我就不必手动更新文件了。我以前从未使用过 cron 或 anacron,但阅读cron 文档我决定将脚本放入/etc/cron.daily。以下是我的脚本,名为dot-files(更改为可执行文件chmod +x):

#!/bin/sh

cd /home/dell/dot-files && /usr/bin/git add . && /usr/bin/git commit -a -m 'daily update' && /usr/bin/git push -u origin master

然而,最近两天它似乎没有运行。以下是来自 的几行/var/log/syslog

Aug 21 10:42:02 dell-Studio-1535 anacron[1023]: Job `cron.daily' terminated (exit status: 1) (mailing output)
Aug 21 10:42:02 dell-Studio-1535 anacron[1023]: Can't find sendmail at /usr/sbin/sendmail, not mailing output

有人能看出这有什么问题吗?我是否使用了错误的设置?

附言我正在使用 ubuntu 12.04 系统,它并不总是运行。

答案1

好的,首先要做的事情是。您看不到哪里出了问题,因为 cron 无法将输出发送给您。但是,您无需配置 sendmail,只需修改脚本,使其存储命令的输出:

#!/bin/sh

export workdir=/home/dell
export logfile=$workdir/dot-files.log
export errfile=$workdir/dot-files.err
date >> $logfile
date >> $errfile

{ cd $workdir/dot-files && /usr/bin/git add . && /usr/bin/git commit -a -m 'daily update' && /usr/bin/git push -u origin master ; } >> $logfile 2>> $errfile

另外,您不需要以 root 身份直接将其放入 cron,您可以以用户身份运行 crontab。

man crontab

PS 当您手动运行该脚本时会发生什么?

相关内容