2017-08-17 4 views
0

Solarisシステム全体をtarしようとしました。それで私は脚本を書いた。このスクリプトをrootとして実行すると、すべて正常に動作します! --exclude-から=:そのようなファイルやディレクトリはありませんSolaris 8でExclude-Fileが動作しない

または

タール:することができます私はクーロンのうち、同じスクリプトを実行しているとき、私は

タールを取得します「Tは--exclude-からする= /ホーム/ BACKUPディレクトリを変更しません:そのようなファイルやディレクトリ

んが

私がやっている以下の通りである。

#!/usr/local/bin/bash 


######################################################################### 
# Author:    Marcus Gehring         # 
######################################################################### 
#tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from=/home/BACKUP/$(uname -n).exclude/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 
tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from= "/home/BACKUP/$(uname -n).exclude"/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 

しかし、どちらも機能しません。私も、次のテストしてみた:

tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz -X "/home/BACKUP/$(uname -n).exclude"/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 

は、ファイルを除外し、次のとおりです。

/home* 
/usr/local/var/httpd* 
/usr/local/var/openldap-data* 

これが理由である場合、私はまた、除外ファイルの別の部分を試してみました。したがって、除外ファイルの2番目のコンテンツは次のとおりです。

/home 
/usr/local/var/httpd 
/usr/local/var/openldap-data 

誰でもアイデアはどうなっていますか? 説明のために: exclude、logとarchiveは1つのディレクトリにあります。

タール-バージョン:

タール(GNUタール)1.13.25

著作権? 2001フリーソフトウェア財団

このプログラムは、法律で許可されている限り、いかなる保証もいたしません。

あなたは、GNU一般公衆利用

ライセンスの条件の下でそれを再配布することができます。詳細についてはCOPYINGというファイルを参照してください。書かれたジョン

ギルモアとジェイフェンラソン。

よろしく

マーカス

UPDATE 1:

こんにちはマーク、あなたのサポートへの感謝:)しかし、これは私のbackup_script.shのコピーコマンドだけであり、クローンタブで)呼び出しは、次のとおりです。

# Backup on UNIX since 08162017 
01 5 * * * /home/BACKUP/backup_script.sh 

アップデート2:

日中

は、私はスクリプトにいくつかの他のコマンドをテストしてみた:

tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from=/home/BACKUP/$(uname -n).exclude/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 
tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from= "/home/BACKUP/$(uname -n).exclude"/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 
tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz -X '/home/BACKUP/$(uname -n).exclude'/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 
tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz -X "/home/BACKUP/$(uname -n).exclude"/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 
tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz "/home/BACKUP/$(uname -n).exclude"/>> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 

それはすべてが同じ結果に終わります。除外されていないファイルと-Xパス上では、前に "--exclude-from"と同じ "tar:-X:No such file or directory"があります。

+0

'crontab'の中でこの' \% 'のようにバックスラッシュを付けて'% '記号をエスケープする必要があるかもしれません。 –

+0

説明を更新しました – Marcusg562

+0

あなたの質問の下で「編集」をクリックして更新してください - コメントでコードを読むことは不可能です... –

答えて

0

問題は、crontabから起動したときと使用者tarの間で使用されたtarの違いでした。

which tarをスクリプトに追加し、出力をwhich tarとコンソールと比較して比較してください。

関連する問題