私はいくつかのサポートファイルを端末に自動的に転送するためにExpectスクリプトを使用します。サポートファイルはscpの前にターゲット端末に自動的に圧縮されます。これはscpのパスワードを自動的に入力する内部Expectプログラムを介して行われるため、パスワードを入力する必要はありません。個々のファイルは問題なくコピーできますが、tar.gzファイルをコピーしようとすると/ tmpディレクトリの権限が変更されます。権限を取得するために、/ tmpディレクトリを1777に戻し、それを通常設定する方法であるroot.rootに変更しましたが、これは常に機能するわけではありません。 sqliteは/ tmpに一時ファイルを書き込めないため、非常に破壊的なsqliteエラーが発生します。この問題の正確な原因をどのように確認できますか?私はそれがtar.gzファイルに関連していることを知っていますが、tarがファイルの権限を保存するという印象を受けました。
私のディレクトリにあるファイルの権限は次のとおりです。
-rw-rw-r-- 1 aembree aembree 88K Oct 2 15:20 dropin.tar.gz
/tmp を送信する前に、ls -al では次のようになります。
drwxrwxrwt 15 root root 8.4K Oct 2 15:08 tmp
転送後の/tmpは次のようになります。
drwxrwxr-x 15 10539 10539 8.4K Oct 2 15:01 tmp
実行中のtarコマンドは次のとおりです。
tar -vPczf /home/aembree/bin/resources/dev/dropin.tar.gz --exclude='helperscript' -C $dropinlist . > /home/aembree/bin/resources/logs/tarlog
ファイルがリモートシステムにある場合は、次のコマンドを実行して解凍します。
send "cd /tmp ; tar -xzf dropin.tar.gz ; rm dropin.tar.gz ; cd ;\n"
答え1
.
提供されたソースコレクションに含めましたtar
。タールボールを抽出して権限を適用すると問題が発生します。ソースディレクトリが.
抽出され、権限が適用されます。残念ながら、抽出ポイント.
は実際に/tmp
。
回避策は、すべてのコンテンツを抽出するタールボールから一時.
ディレクトリを除外または作成することです。/tmp