logrotate
私のシェルファイルからコマンドを実行すると、これがどのように機能するのか、それがどのように機能しないのかを理解するのは本当に難しいです。
問題のコマンドは次のとおりです。
rclone -L -vv --log-file "/home/mike/tmp/qqq.log" sync "/media/mike/W10 D drive/My Documents/" remote:MyDocuments_M17A_from_Linux
私が欲しいもの:
qqq.logファイルを頻繁に(たとえば10分ごとに)確認し、そのファイルが指定されたサイズ(たとえば1MB)を超えることを確認したいと思います。その場合、ファイルは回転されます。rclone
この-vv
オプションを使用すると、意図的に多くの出力が生成されます(つまり、logrotateがこのユースケースに適した理由を理解しようとします)。
かなり役に立つチュートリアルがありますここしかし、まだ私に手がかりはありません。
独自の非システムプロセスのログ循環をどのように設定する予定ですか?床に線を付けることを意味しますか
/etc/logrotate.conf
?これが私がしたことです(「#システムごとのログはここで設定できます」)。/home/mike/tmp/qqq.log { notifempty size 1M daily create 0664 root root rotate 3 }
後:今、別のファイルを置くことができることに気づきました。
/etc/logrotate.d
そこでは複雑ではありません。デフォルトでは、
logrotate
このファイルは1日1回だけ実行されますか/etc/cron.daily/logrotate
?これは、より頻繁に確認したい場合は、
cron
このタスクを10分ごとに実行(この場合)するように設定する必要があるという意味ですか?rootとして実行しますか
logrotate <config file>
?ルートとユーザーの両方で試してみたので、この質問をします。ユーザーが仕事をしていないようです。
このタイプの設定(まれではない)への初心者ガイドへのリンクが役立ちます。検索してみましたが、私が見つけたほとんどのコンテンツにはステップバイステップのガイドはありません。
ベストアンサー1
logrotate
そのユーザーのログを回転させるために、管理者権限を持たずに通常のユーザーとして実行できます。
# Create a local per-user configuration file
cat >.logrotate.conf <<'X'
/home/mike/tmp/qqq.log {
notifempty
missingok
size 1M
rotate 3
}
X
# Run logrotate with that configuration file
/usr/sbin/logrotate -v -s .logrotate.state .logrotate.conf
daily
可能なタスクを1日1回に制限する純粋にサイズベースのチェックを望んでいたので、基準を削除しました(logrotate
状況に応じて1日に最初に実行)。ではなく、実際のジョブで出力ファイルが生成されるようにcreate
置き換えました。missingok
rclone
logrotate
次に、logrotate
ユーザーcrontab
ファイルにコマンドを入力します。
# Capture any existing crontab entries
crontab -l >.crontab
# Append ours to the list
echo '0 * * * * /usr/sbin/logrotate -s .logrotate.state .logrotate.conf >>.crontab.log 2>&1' >>.crontab
# Reload crontab
crontab .crontab
この例では、コマンド出力がに書き込まれます。毎月アイテムを繰り返すかリセット.crontab.log
できます。logrotate