我在我的Ubuntu 10.04 LTS服务器上运行来自root cron的组合备份脚本。
root cron看起来像这样:
# m h dom mon dow command
0 1 * * 2-6 /home/cbhiadmin/archive
它按照预期执行。 archive命令启动了几个单独的工具备份。代码如下:
#!/bin/bash
# This script executes several individual facility archive processes & logs success.
/home/cbhiadmin/archive104
/home/cbhiadmin/archive106
if [ $? -ne 0 ]; then
echo "$(date '+%m/%d/%y-%H:%M') Nightly Addon backup SUCCESSFUL" >> /home/cbhiadmin/addon_backups/addon_backup.log
exit
fi
然后最后一部分是个人设施备份,如下所示:
#!/bin/bash
# This script archives a facility, FTPs the archive to 10.5.2.76, & logs failure.
today=$(date '+%m%d%y')
site="106"
cd /home/cbhiadmin/addon_backups/"$site"
if [ ! -f "$site"adata_"$today".tar.gz ]; then
tar --exclude *.CSV --exclude *.csv -czf "$site"adata_"$today".tar.gz -C /usr/bbx/aon/ "$site"/ADATA/
if [ $? -ne 0 ];then
echo "$(date '+%m/%d/%y-%H:%M') $site: Nightly Addon backup FAILED" >> /home/cbhiadmin/addon_backups/addon_backup.log
fi
fi
cp "$site"adata_"$today".tar.gz /home/cbhiadmin/SAN/"$site"
find ~/SAN/"$site"/*.tar.gz -maxdepth 1 -mtime +60 -exec rm {} +
我的问题是,最后一行似乎不能从root cron工作,但是当我以root用户身份运行存档时,它可以工作。
缺少什么?
答案 0 :(得分:1)
find ~/SAN/"$site"/*.tar.gz -maxdepth 1 -mtime +60 -exec rm {} +
“〜”指的是用户的主目录。但是,当由cron运行时,它不使用您的用户,因此,您的主目录。改变它以引用绝对路径。
答案 1 :(得分:1)
请按照以下步骤操作,它应该可以解决您的问题:
cd ~/SAN/
pwd
pwd
命令的结果。