私の rsync bash スクリプトは、php 経由で生成された --exclude-from ファイルを解析していませんが、ローカルでまったく同じファイルを (ルートとして) 手動で作成すると解析されます。Xubuntu 12.10 システムに、rsync --exclude-from ファイルをローカルに書き込み、rsync スクリプトを実行する (CentOS 6) バックアップ ボックスに rcp 経由でプッシュする Web インターフェイスがあります。(rcp について指を振るのは控えてください... 私は知っています -- この場合、選択の余地はありません。)
ウェブページはファイルを書き込みます:
PHP:
file_put_contents($exclfile, $write_ex_val);
次に、Web サーバー上のローカル bash スクリプトから次のコマンドを使用してバックアップ ボックスにプッシュします。
バッシュ:
rcp -p /path/to/file/${servername}_${backupsource}.excl ${server}:/destination/path
手動で作成したファイル (機能する) のアクセス許可と所有権を、php/rcp で処理された同じファイル (機能しない) と比較しましたが、どちらも同じです。
バッシュ:
stat -c '%a' server_backupsource_byhand.excl
644
stat -c '%a' server_backupsource_byphp.excl
644
ls -l server_backupsource_byhand.excl
-rw-r--r-- 1 root root 6 May 11 05:57 server_backupsource_byhand.excl
ls -l server_backupsource_byphp.excl
-rw-r--r-- 1 root root 6 May 11 05:58 server_backupsource_byphp.excl
関連する場合に備えて、ここに私のrsync行があります:
バッシュ:
rsync -vpaz -v --exclude-from=${exclfile} /mnt/${smbdir} /backup
PHP が別の形式 (ANSI ではなく UTF8 など) でファイルを書き込んでいる可能性があると思われますが、これをテストする方法がわかりません。ここでの知識は限られています。
php/rcpで生成されたファイルを解析する方法について何か提案はありますか?