Ubuntu root Cron工作没有完成

时间:2013-03-09 00:48:20

标签: linux bash ubuntu ubuntu-10.04

我在我的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用户身份运行存档时,它可以工作。

缺少什么?

2 个答案:

答案 0 :(得分:1)

find ~/SAN/"$site"/*.tar.gz -maxdepth 1 -mtime +60 -exec rm {} +

“〜”指的是用户的主目录。但是,当由cron运行时,它不使用您的用户,因此,您的主目录。改变它以引用绝对路径。

答案 1 :(得分:1)

请按照以下步骤操作,它应该可以解决您的问题:

  1. 输入cd ~/SAN/
  2. 输入pwd
  3. 将“〜/ SAN /”替换为pwd命令的结果。