DebianSqueezeサーバーでBackupPcを実行しています。 LAN上の他のDebianSqueezeマシンを正常にバックアップします。 WAN上の別のDebianSqueezeマシンをバックアップするように設定しましたが、バックアップは常にエラーメッセージで失敗します。
Aborting backup up after signal PIPE
Got fatal error during xfer (aborted by signal=PIPE)
バックアップはsshを介して実行され、このバックアップクライアントの構成は次のとおりです。
$Conf{RsyncArgs} = [
# Do not edit these!
'--numeric-ids',
'--perms',
'--owner',
'--group',
'--devices',
'--links',
'--times',
'--block-size=2048',
'--recursive',
#
# If you are using a patched client rsync that supports the
# --checksum-seed option (see http://backuppc.sourceforge.net),
# then uncomment this to enabled rsync checksum cachcing
#
'--checksum-seed=32761',
#
# Add additional arguments here
#
'-D',
'--one-file-system',
];
$Conf{FullPeriod} = 6.97;
$Conf{IncrPeriod} = 0.49;
$Conf{FullKeepCnt} = 4;
$Conf{IncrKeepCnt} = 93;
$Conf{XferMethod} = 'rsync';
$Conf{RsyncShareName} = '/';
$Conf{BackupFilesExclude} = [
'/cdrom',
'/dev',
'/files/_nobackup',
'/floppy',
'/lost+found',
'/mnt',
'/proc',
'/sys',
'/tmp/ssh-*',
'/var/lib/amavis/amavisd.sock',
'/var/lib/backuppc',
'/var/lib/nagios3/rw/nagios.cmd',
'/var/run/acpid.socket',
'/var/run/clamav/clamd.ctl',
'/var/run/courier/authdaemon/socket',
'/var/run/mysqld/mysqld.sock',
'/var/run/nut/usbhid-ups-apc_backups_cs500',
'/var/run/proftpd.sock',
'/var/run/screen',
'/var/spool/postfix/private/amavis',
'/var/spool/postfix/private/anvil',
'/var/spool/postfix/private/bounce',
'/var/spool/postfix/private/bsmtp',
'/var/spool/postfix/private/defer',
'/var/spool/postfix/private/discard',
'/var/spool/postfix/private/error',
'/var/spool/postfix/private/ifmail',
'/var/spool/postfix/private/lmtp',
'/var/spool/postfix/private/local',
'/var/spool/postfix/private/maildrop',
'/var/spool/postfix/private/odmr',
'/var/spool/postfix/private/proxymap',
'/var/spool/postfix/private/relay',
'/var/spool/postfix/private/retry',
'/var/spool/postfix/private/rewrite',
'/var/spool/postfix/private/scache',
'/var/spool/postfix/private/scalemail-backend',
'/var/spool/postfix/private/smtp',
'/var/spool/postfix/private/tlsmgr',
'/var/spool/postfix/private/trace',
'/var/spool/postfix/private/uucp',
'/var/spool/postfix/private/verify',
'/var/spool/postfix/private/virtual',
'/var/spool/postfix/public/cleanup',
'/var/spool/postfix/public/flush',
'/var/spool/postfix/public/pickup',
'/var/spool/postfix/public/qmgr',
'/var/spool/postfix/public/showq',
'/var/spool/postfix/var/run/saslauthd/mux',
'/var/spool/squid',
];
$Conf{XferLogLevel} = 1;
$Conf{CompressLevel} = 9;
$Conf{PingMaxMsec} = 200;
$Conf{ClientTimeout} = 3600*8; # 6 Hours!!
ローカルtarバックアップを試して、ファイルシステムに問題があるかどうかを確認しましたが、すべてうまくいきました。
デバッグ方法に関する提案はありますか?
私はsigpipeの意味を調査しました。 SIGPIPE-ウィキペディア、無料の百科事典 で説明されているように:
POSIX準拠のプラットフォームでは、SIGPIPEは、プロセスがもう一方の端に接続されていない状態でパイプに書き込もうとしたときにプロセスに送信されるシグナルです。 .。
そのため、問題はssh
トランスポートが切断されることにあると思われました。
設定でオプション-o ServerAliveInterval=300
を使用して、ssh
に長いタイムアウトを設定しました。
$Conf{RsyncClientCmd} = '$sshPath -o ServerAliveInterval=300 -q -x -l root $Host
$rsyncPath $argList+';
これでバックアップは正常に完了しました。
これが他の人に役立つ場合に備えて、一部のバックアップで_aborted by signal=PIPE
_と_Child exited prematurely
_の両方を取得していました(増分バックアップのみのようです)。 $Conf(RsyncClientCmd)
の調整は、Centos5へのBackupPc3.1のインストールでは機能しませんでした(まもなくアップグレードされます)そもそも接続の試みが失敗したためです。 rsync
ではなくssh
を使用しています。
マシンはバックアップの実行専用であり、sshアクセスを使用する他のユーザーが心配だったため、クライアントマシン(BackupPcサーバーではない)の_ClientAliveInterval=300
_に_/etc/ssh/sshd_conf
_を設定するだけでしたが、これは代わりに個別ログイン。
私は同じ問題を抱えていて、ついにそれを理解しました。ホストをバックアップするためにホスト固有のディレクトリを定義し、これらのディレクトリの1つが存在しない場合、rsyncは次のようなメッセージで失敗します。
Got fatal error during xfer (aborted by signal=PIPE)
ディレクトリを削除した後、rsyncに追加の権限がなくてもすべてが完全に機能します。
私の経験が皆さんのお役に立てば幸いです。
RsyncShareName
パラメーター(同期するフォルダーを定義する)が正しくなかったという理由だけで、BackupPCを使用してバックアップを実行すると、このメッセージが表示されました。指定されたフォルダーがサーバーに存在しませんでした。
Xfer
設定でこのパラメータを確認できます。