1

Ubuntu 10.04 LTS サーバーのルート cron から組み合わせバックアップ スクリプトを実行しています。

ルート 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 {} +

私の問題は、最後の行がルート cron からは機能していないように見えますが、アーカイブを自分でルートとして実行すると機能することです。

何が欠けていますか?

4

2 に答える 2

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

「〜」はユーザーのホームディレクトリを指します。ただし、cronで実行すると、ユーザーは使用されないため、ホームディレクトリが使用されます。絶対パスを参照するように変更します。

于 2013-03-09T00:52:19.607 に答える
1

以下の手順に従ってください。問題が解決するはずです。

  1. タイプcd ~/SAN/
  2. タイプpwd
  3. 「~/SAN/」をpwdコマンドの結果に置き換えます。
于 2013-03-09T16:41:20.397 に答える