/usr/bin/rsync -avh -r /Parent/Folder1 /Destination/
if [ $? == 0 ]
then
cp /FolderCopyStatus/Success /Result/Success$(basename !:3)
else
cp /FolderCopyStatus/Failure /Result/Failure$(basename !:3)
fi
質問1
私はCentオペレーティングシステムで2つのフォルダを同期させるためにrsyncコマンドを使用しています。 rsync コマンドが成功すると、Success ディレクトリのフォルダを Result ディレクトリにコピーし、現在の日付を追加します。これはうまくいきます。
私が望むのは、日付を追加するのではなく成功からコピーしたとき、 フォルダ1上記のコマンドを追加する必要があります。だから何?
質問2
私はcrontabでこのシェルスクリプトを自動化しました。自動化スクリプトのコマンドにFolder1をパラメータとして渡したいと思います。だから方法?
修正する:
if [ $? == 0 ]
then
cp /FolderCopyStatus/Success /Result/Success$(basename !:3)
else
cp /FolderCopyStatus/Failure /Result/Failure$(basename !:3)
fi
質問: $(basename !:3) はスクリプトでは機能しませんが、 echo $(basename !:3) などの一般的なコマンドでは機能します。
答え1
質問1
/usr/bin/rsync -avh -r /Parent/Folder1 /Destination/ if [ $? == 0 ] then cp /FolderCopyStatus/Success /Result/Success$(basename !^) else cp /FolderCopyStatus/Failure /Result/Failure$(date +%F_%R) fi
質問2
スクリプトの最初の行を次のように設定します。
/usr/bin/rsync -avh -r /Parent/$1 /Destination/
次に、スクリプトを呼び出すときにこれを呼び出します。
/path/to/script Folder1