私はLinuxとbashスクリプトを初めて知ってから2週間しか経っていないので、何も知らないとしましょう。
開発上の理由から、ログファイルを別の場所と名前にコピーする必要があります。私のlogrotateファイルは次のとおりです。
/pub/share/logs/results.txt {
daily
rotate 30
dateext
compress
delaycompress
missingok
notifempty
postrotate
sh /pub/share/scripts/result_rotate.sh $1 > /dev/null
endscript
}
Bashスクリプトは簡単です。
#!/bin/bash
date=$(date +%Y%m%d)
cp $1-$date /pub/share/reports/data.log
私はそうはわかりませんが、持つスクリプトファイルに入れるか、後方回転ブロックに入力することができれば、これはうまくいきます。
回転するファイルの名前を渡しますが、日付拡張子(したがって上記の日付コード)に名前が変更された後に渡されます。これは安全な方法ですか?正しいマッチが行われない状況が発生しますか?
ベストアンサー1
うん、ちょうど書けばいい。バックスピン目詰まり:
cp $1-$(date +%Y%m%d) /pub/share/reports/data.log >/dev/null
今日の日付のように悪い場合バックスピン 翌日実行するように公開されているため、cp
コマンドでファイルをコピーすることはできません。これを行うには、今日の日付が回転したファイルではなく、1日前のファイルを常にインポートできます。
cp $1-$(date -d'-1day' +%Y%m%d) /pub/share/reports/data.log >/dev/null
あるいは、もちろん、今日の日付ファイルと昨日の日付ファイルの2つをコピーすることもできます。