rsyncを使用して、選択したフォルダをリモートサーバーにバックアップするスクリプトを作成しました。スクリプトを手動で実行すると、すべてがうまく機能します。しかし、システムがシャットダウンしたときに自動的に実行したいと思います。ここでエラーが発生します。
13:19:12 mx rsync_update.sh[9512]: Host key verification failed.
13:19:12 mx rsync_update.sh[9506]: rsync: connection unexpectedly closed (0 bytes received so far) [sender]
13:19:12 mx rsync_update.sh[9506]: rsync error: unexplained error (code 255) at io.c(231) [sender=3.2.7]
ユニットはこんな感じです。
[Unit]
Description=Clean on reboot,shutdown
Requires=network.targe rsync.service
After=multi-user.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecStop=/usr/local/bin/rsync_backup.sh
[Install]
WantedBy=multi-user.target
RsyncはSSHを介して動作します。
ベストアンサー1
いつ閉鎖(init 0、init 6)起動すると、このサービスはさまざまなサービスを開始してから既存のサービスを終了します。他のエントリが終了する前にレプリカを起動するようにカスタムsystemdスクリプトに明示的に指定しないと、プロセスの任意のrsync
時点でサービスが終了する可能性があります。ssh
サービスが終了する前または後に発生しますか?ファイルシステムがアンマウントされる前または後に発生しますか?ネットワークが死ぬ前か、それとも後ですか?など。
rsyncバックアップが入力後に発生する最初のサービスであることを確認したいと思います。再起動または閉鎖そして他のサービス/ターゲットが実行されています。たとえば、以下のリンクの回答を信じていて、ほとんどの場合解決策があると思いますが、必ずしも1つの回答しか答えないわけではありませんsshd
。network-online.target
要件が与えられたら、Wanted By
何を選択して指定するかをより慎重に検討する必要がありますRequires
。ご希望のタイプのシステムサービステンプレートを公開します。