Snapperは過去2年間に時間ごとのスナップショット(定時)を完全に実行してきました。前回気づいた二つスナップショットは毎時間撮影されます。 1時間に1回(HH:00)、もう1回は1分後(HH:01)
Snapperログファイルには、両方の重複スナップショットのlibsnapperの同じプロセスIDが表示されます。 1時間ごとに新しいプロセスIDが作成されますが、ログによれば同じプロセスIDで繰り返しスナップショットが実行されます。ログでは、すべてが正常に見えます。私が知っている限り、これは2回だけ繰り返されました。
snapper list-configs
重複した構成はありません。
私はいつもsystemdタイマーを有効にしてsnapper-timeline.timerを起動しました(これは次のものに基づいています)。Arch's Snapper Wiki ページ)。
ルートクローンはありません。
# crontab -l
no crontab for root
私が知っている限り、ユーザーのcron:/var/spool/cron/
は空ではありません。
これは本当に奇妙なことです。停止して無効にすると、snapper-timeline.timer
その時点で作成されたスナップショットは停止しますが、その時間の1分後に作成されたスナップショットは続行されます。再起動後も同様です。
上記の手順を実行した後、systemctlはsnapper-timeline.timerエントリを一覧表示しません。
$ systemctl --user list-timers
0 timers listed.
$ sudo systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Wed 2018-02-21 00:00:00 EST 1h 40min left Tue 2018-02-20 00:00:00 EST 22h ago logrotate.timer logrotate.service
Wed 2018-02-21 00:00:00 EST 1h 40min left Tue 2018-02-20 00:00:00 EST 22h ago man-db.timer man-db.service
Wed 2018-02-21 00:00:00 EST 1h 40min left Tue 2018-02-20 00:00:00 EST 22h ago shadow.timer shadow.service
Wed 2018-02-21 03:54:50 EST 5h 35min left Tue 2018-02-20 03:54:49 EST 18h ago snapper-cleanup.timer snapper-cleanup.service
Wed 2018-02-21 03:59:50 EST 5h 40min left Tue 2018-02-20 03:59:49 EST 18h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Mon 2018-02-26 00:00:00 EST 5 days left Mon 2018-02-19 00:00:23 EST 1 day 22h ago fstrim.timer fstrim.service
修正する:
私たちが知る限り、アーチウィキスナッパーページ、「自動タイムラインスナップショット」の下:
cronデーモンがある場合、この機能は[時間ごとの自動スナップショット]を自動的に開始します。
上で述べたように、crontab -l
rootとユーザーとして確認しましたが、どちらも空です。
しかし、私の場合はcronieをインストールしました(cronieはcronデーモンです)。ビューには/etc/cron.daily/
スナッパファイルが表示され、ス/etc/cron.hourly/
ナッパファイルも含まれています。
残りの質問は次のとおりです。
どのユーザーのcrontabにSnapper cronjobが表示されますか?
Snapperのcronjobを無効にしてパッケージアップデート全体にわたって持続させる方法はありますか(システムタイマーをアクティブにしている間)。
/etc/cron.daily
/etc/cron.hourly/`からアイテムを削除すると、Snapperパッケージが更新されたときにそのアイテムが置き換えられると想定されます。 [更新2:この仮説を確認するテストを行いました。コメントを読んでください。 ]
答え1
この回答のクレジットは@jasonwryanにあります。
私たちが知る限り、アーチウィキスナッパーページ、「自動タイムラインスナップショット」の下:
cronデーモンがある場合、この機能は[時間ごとの自動スナップショット]を自動的に開始します。
crontab -l
rootとユーザーで確認しましたが、どちらも空です。
しかし、私の場合はcronieをインストールしました(cronieはcronデーモンです)。パッケージをインストールすると、Snapperタイムラインクリーンアップスクリプトはに/etc/cron.daily/
、時間ごとのスナップショットスクリプトはに配置されます/etc/cron.hourly/
。 (Snapperシステムデバイスが有効になっている場合でもこれが行われます。)
systemdタイマーを使用することを好むが、奇妙な操作のためにcronデーモンを維持する場合、Snapperはcronデーモンを好む。
私が行ったようにcronデーモンをインストールする必要がありますが、systemdを使用してSnapperタイマーを管理したい場合は、解決策(@jasonwryanのおかげで)は次のようになります。
/etc/pacman.conf 編集`
NoExtract
ディレクティブにコメントが付いている場合は、コメントを外してください。Snapperパッケージの次の2つのファイルを
NoExtract
ディレクティブに追加します。等/cron.daily/snapper等/cron.hourly/snapper
複数のファイルを追加する構文については、ここで説明します。
pacman.conf 複数行ファイルリストの NoExtract 構文/Pacman およびパッケージアップグレードの問題/Arch Linux フォーラム
/etc/pacman.confの結果行の例:
NoExtract = etc/cron.daily/snapper etc/cron.hourly/snapper
このソリューションは私の友人には効果的ですが、他のcronデーモンを使用している場合はパスが異なる場合があります。