web-dev-qa-db-ja.com

BackupPC-転送が断続的に失敗する

BackupPCは私のLANでうまく機能しますが、私のリモートサーバーのバックアップに問題があります。 ssh経由でrsyncを使用していますが、リモートサーバーが遠く離れているため、最大pingを500に増やしました。

これが私のエラーログです(ユーザーと1.2.3.4はマスクされた情報です):

ディレクトリの完全バックアップが開始されました/実行中:/ usr/bin/ssh -p 2222 -q -x -l user 1.2.3.4/usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size = 2048 --recursive--ignore-times。 /

Xfer PIDs are now 5705
Got remote protocol 30
Negotiated protocol version 28
Sent include: /home
Sent include: /home/user
Sent exclude: /*
Sent exclude: /home/*
Sent exclude: /home/user/folder1
Sent exclude: /home/user/folder2
Xfer PIDs are now 5705,5744
[ skipped 22380 lines ]
Read EOF: 
Tried again: got 0 bytes
Can't write 4 bytes to socket
finish: removing in-process file home/user/site15/something/else/here/p4677545.jpg
Child is aborting
Done: 19205 files, 799171349 bytes
Got fatal error during xfer (aborted by signal=PIPE)
Backup aborted by user signal
Saving this as a partial backup

ユーザーbackuppcとしてリモートサーバーにsshしようとすると、パスワードを要求しなくても機能します。一般的なログは次のようになります。


> 2012-02-2900:00:00ディレクトリ/の完全バックアップが開始されました
> 2012-02-2901:00:12シグナルPIPE後のバックアップを中止します
> 2012-02-29 01:00:13 xfer中に致命的なエラーが発生しました(signal = PIPEによって中止されました)
> 2012-02-2902:00:01ディレクトリ/の完全バックアップが開始されました
> 2012-02-2903:01:09シグナルPIPE後のバックアップを中止します
> 2012-02-29 03:01:11 xfer中に致命的なエラーが発生しました(signal = PIPEによって中止されました)
> 2012-02-2910:56:16ディレクトリ/の完全バックアップが開始されました
> 2012-02-2911:59:18シグナルPIPE後のバックアップの中止
> 2012-02-29 11:59:20 xfer中に致命的なエラーが発生しました(signal = PIPEによって中止されました)
> 2012-02-2911:59:20保存された部分ダンプ0
> 2012-02-2912:25:15ディレクトリ/の完全バックアップが開始されました
> 2012-02-2911:26:55シグナルPIPE後のバックアップを中止します
> 2012-02-29 13:26:57 xfer中に致命的なエラーが発生しました(signal = PIPEによって中止されました)
> 2012-02-2916:48:52ディレクトリ/の完全バックアップが開始されました
> 2012-02-2919:51:41シグナルPIPE後のバックアップを中止します
> 2012-02-29 17:51:42 xfer中に致命的なエラーが発生しました(signal = PIPEによって中止されました)
> 2012-02-2919:51:42保存された部分ダンプ0
> 2012-02-2918:13:27ディレクトリ/の完全バックアップが開始されました
> 2012-02-2919:15:19シグナルPIPE後のバックアップを中止します
> 2012-02-29 19:15:20 xfer中に致命的なエラーが発生しました(signal = PIPEによって中止されました)
> 2012-02-2919:15:20保存された部分ダンプ0
> 2012-02-2919:19:55ディレクトリ/の完全バックアップが開始されました

ほとんどの場合、1h01 'または1h02'の後に終了します。秒単位のこれらの値は3660と3720です。多分それらはいくつかのオプションで表示されます...?何かコメントはありますか?

ありがとう

編集:私が試したが機能しなかったもの:-ServerAliveInterval = 300、ServerAliveInterval = 60-PingMaxMsecを500に増やしました-rsyncオプション--timeoutと--contimeoutを20秒と200秒に設定しました(両方の値を両方のオプションで試しました) -rsyncからブロックサイズオプションを削除します

何も機能しませんでした。通常、サイズに関係なく、さまざまなファイルで停止します。

新しい編集:このリモートsshサーバーに手動でログインし、ターミナルを1時間26インチそのままにしておくと、切断されます。これがBackupPCも切断される理由のようです。の実行をシミュレートする方法はありますか? BackupPCのセッション内のコマンド?

3
Chris

フルバックアップコマンドを次々に手動で発行してみることができます。実行するたびに、backuppcはデータの異なるチャンクを転送します。バックアップが成功すると、すべてのデータが転送されたことがわかります。

Sshの圧縮オプションを使用して、プロセスを高速化し、反復を減らすこともできます。

追加の増分バックアップは、通常、サイズがはるかに小さく、時間が短いため、接続がタイムアウトしないため、問題は発生しません。

1
miltos

構成内で $ Conf {ClientTimeout} の値を確認し、それに応じて値を増やす必要があります。

実装上の制約により、BackupPCには、より長いファイルの転送中に何が起こっているかについての情報がほとんどありません。デッド転送が永久にハングするのを防ぐために、転送は$Conf{ClientTimeout}秒後にキャンセルされます。リモートサーバー上の単一のファイルがこの値の設定よりもバックアップに時間がかかる場合、バックアップ転送は中止されます。

2
the-wabbit

あなたまたはプロバイダーがファイアウォールを持っている場合は、そのsession-ttlを確認してください。一般的な値は3600です...ファイアウォールが手元にない場合は、ここで説明するように、オプションserveraliveintervalを指定してsshを使用することもできます。 https://unix.stackexchange.com/questions/34004/how-does-tcp-keepalive-work-in-ssh backuppcはそれに応じて変更できます。

1
Patrick