0

ssh トンネル経由で (cron を使用して) 自動 rsync バックアップをセットアップしようとしていますが、「リモート ホストによって閉じられた localhost への接続」というエラーが表示されます。Ubuntu 12.04 を実行しています。ヘルプを検索し、ALL:ALL を /etc/hosts.allow に追加する、sshd_config で #MaxStartups 10:30:60 を確認する、sshd_config で UsePrivilegeSeparation を no に設定する、/var/empty/sshd を作成するなど、多くの解決策を試しましたが、誰も問題を解決していません。

トンネルが常にそこにあることを確認するために autossh を実行しています。

autossh -M 25 -t -L 2222:destination.address.edu:22 pbeyersdorf@intermediate.address.edu -N -f

これは正常に動作しているようで、さまざまな rsync タスクにトンネルを使用できました。実際、cron を介して次の rsync タスクを初めて実行したときは成功しました。

rsync -av --delete-after /tank/Documents/ peteman@10.0.1.5://Volumes/TowerBackup/tank/Documents/

各ファイルのステータスと出力

sent 7331634 bytes  received 88210 bytes  40215.96 bytes/sec
total size is 131944157313  speedup is 17782.61

その最初の成功以来、すべての試行で次の出力が得られます

building file list ... Connection to localhost closed by remote host.
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9]

小さいサブディレクトリの rsync 操作は期待どおりに機能します。何が問題なのかについてのアイデアをいただければ幸いです。

4

1 に答える 1

0

問題はautosshに関連しているようです。autossh の代わりに ssh 経由でトンネルを作成すると、正常に動作します。autossh 構成に影響を与える環境変数を微調整できるのではないかと思いますが、私の目的のために、最初に ssh 経由でトンネルを開き、バックアップを実行してから ssh トンネルを強制終了するスクリプトで rsycn コマンドをラップすることで問題を解決しました。 autossh によって作成された常に開いているトンネルの必要性を排除します。

#!/bin/sh
#Start SSH tunnel
ssh -t -L 2222:destination.address.edu:22 pbeyersdorf@intermediate.address.edu -N -f
#execute backup commands
rsync -a /tank/Documents/ peteman@localhost://Volumes/TowerBackup/tank/Documents/ -e "ssh -p 2222"
#Kill SSH tunnel
pkill -f "ssh.*destination.address"
于 2012-11-08T17:31:00.420 に答える