今朝、newsyslogの交換後に進行中のrsyncの出力がrsyncログに表示されないことがわかりました。失われた
つまり、
- rsync を実行すると、/var/log/rsync に書き込まれます。
- newsyslog は対数回転を実行します。
- 新しい /var/log/rsync に出力がありません。
- 私が見ることができるどこにもキャプチャ出力はありません。
私は何が間違っていましたか?
これはrsyncコマンドです(cygwinを実行しているWindowsシステムのrsyncdモジュールから抽出されます)。これはrsnapshotコマンドの一部ですが、この質問には関係ありません。
/usr/local/bin/rsync -av --delete --relative --delete-excluded --stats --log-file=/var/log/rsync --human-readable --no-owner --no-group --exclude-from=/yada/yada/.rsnapshot_excludes 192.168.3.130::INC-10890_data/ /zfspoolname/archives/daily.0/LOCATIONSIGNIFIER/INC-10890_data/
これは/var/log/rsync.0の最後の5行です(圧縮解除後)。
[root@offsite1 ~]# tail -5 /var/log/rsync.0
2019/02/11 01:03:54 [20023] >f+++++++++ master/20170801/000054420170801010001/000054420170801010001oct_c_102.bmp
2019/02/11 01:03:55 [20023] >f+++++++++ master/20170801/000054420170801010001/000054420170801010001oct_c_103.bmp
2019/02/11 01:03:55 [20023] >f+++++++++ master/20170801/000054420170801010001/000054420170801010001oct_c_104.bmp
2019/02/11 01:03:55 [20023] >f+++++++++ master/20170801/000054420170801010001/000054420170801010001oct_c_105.bmp
2019/02/11 01:03:55 [20023] >f+++++++++ master/20170801/000054420170801010001/000054420170801010001oct_c_106.bmp
/var/log/rsync の内容は次のとおりです。
> [root@offsite1 ~]# tail -5 /var/log/rsync Feb 11 01:00:00 offsite1
> newsyslog[61988]: logfile turned over
これは、今朝rsync操作を終了したときに画面に表示された最後の行でした(tail -f /var/log/rsyncコマンドを一晩実行しました)。 tail -fを実行したので、/var/log/rsyncに表示する必要があります。 newsyslogが関連していない場合は、/var/log/rsyncでこのタイプの出力を経験したことがあります。
> 2019/02/11 07:13:52 [20023] >f+++++++++
> master/20170914/000504720170914030001/000504720170914030001oct_c_027.bmp
> 2019/02/11 07:13:52 [20023] >f+++++++++
> master/20170914/000504720170914030001/000504720170914030001oct_c_028.bmp
> 2019/02/11 07:13:53 [20023] >f+++++++++
> master/20170914/000504720170914030001/000504720170914030001oct_c_029.bmp
> 2019/02/11 07:13:53 [20023] >f+++++++++
> master/20170914/000504720170914030001/000504720170914030001oct_c_030.bmp
> 2019/02/11 07:13:53 [20023] >f+++++++++
> master/20170914/000504720170914030001/000504720170914030001oct_c_031.bmp
> 2019/02/11 07:13:53 [20023] >f+++++++++
> master/20170914/000504720170914030001/000504720170914030001oct_c_032.bmp
> 2019/02/11 07:13:54 [12868] rsync error: received SIGINT, SIGTERM, or
> SIGHUP (code 20) at rsync.c(689) [generator=3.1.3] 2019/02/11 07:13:54
> [20023] rsync error: received SIGINT, SIGTERM, or SIGHUP (code 20) at
> io.c(504) [receiver=3.1.3]
これは /usr/local/etc/newsyslog.conf.d/rsync の内容です。
#
# The 'flags' field is one or more of the letters: BCDGJNUXZ or a '-'.
#
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/var/log/rsync 644 13 * $W1D01 JCN
ついに
[root@offsite1 ~]# uname -a
FreeBSD offsite1.domanname.com 12.0-RELEASE-p3 FreeBSD 12.0-RELEASE-p3 GENERIC amd64
ベストアンサー1
newsyslog
ログファイルを新しい名前()に移動/var/log/rsync.0
して圧縮します(で使用したフラグ/var/log/rsync.0.bz2
のため)。次に、古い名前(のフラグ)で新しいファイルを作成します。J
newsyslog.conf
C
newsyslog.conf
これは、ファイルに書き込むプロセスが存在しなくなったファイルに書き込むことを意味します(まあ、存在するが名前はありません)。ファイルハンドルが閉じると、そのinode/var/log/rsync
には名前がなくなり、ファイルが使用するスペースが回復されます。rsync
ファイルが圧縮されると、inodeの名前が失われます。
HUP
通常、システムサービスは送信してシグナルを送信しますnewsyslog
。これは通常、次のことを意味します。もう一度開くそれらの書き込みログファイル。これは、空白を書き込むのではなく、新しく消去されたログファイルへの書き込みを開始することを意味します。
rsync
私が知る限り、そのような機能がないので、ログファイルの回転ポイントの後に書かれたすべての内容は失われます。
rsync.0
バックアップファイルの作成方法に応じて書き込みをrsync
続けることができます。それローテーションログの圧縮を無効にした場合にのみ、このファイルを使用できます。
p
フラグ列のフラグを使用すると、これを行うことができますnewsyslog.conf
。これにより、ゼロ番目の回転ログファイルは圧縮されていませんが、古いログファイルは圧縮されます。バラよりnewsyslog.conf(8)
。
最初のログに対してのみ圧縮を無効にすると、rsync
同じプロセスがプロセス全体でアクティブになっても問題が発生する可能性があります。第二ログファイルはrsync.0
ファイル名が変更されたrsync.1
後に圧縮されるため、循環しますrsync.1.bz2
(これは同じ問題です)。ログファイル圧縮の無効化完全この問題を解決します。