0

自宅のコンピューターからクラウド サーバーにファイルを再同期したいと考えています。次の方法で継続的な rsync を設定できます。

#!/bin/bash

while :

do 

rsync -rav * --include=*.bz2 --exclude=*.* --exclude=ZIP.sh --exclude=UPLOAD.sh
--chmod=a+rwx user@server.com:/home/user/date

sleep 180

done

ここに記載されているようにkeygenを設定すると、これはもちろん継続的に実行されます。初めてパスワードを入力してrsyncを継続的に実行したいのですが、その後はCTRL + Cを押すまで継続的に実行されます。これを行う方法はありますか?

4

1 に答える 1

1

はい、SSH 接続共有を使用します。

~/.ssh/configこれをファイルの上に追加します。

ControlMaster auto
ControlPath /tmp/ssh_%r@%n:%p
ControlPersist 8h

接続共有とは、同じサーバーへのすべての SSH 接続が同じ接続を共有することを意味します。これは、最初の接続以外のすべての認証プロセスをスキップできることを意味します。このControlPersist設定は、接続が閉じられるまでのアイドル時間の長さを制御します (8 時間は、朝にログインでき、その日の終わりにはまだ接続がアクティブであるが、翌日までに期限切れになることを意味します)。

ControlPath、キャッシュされたソケットが存在する場所を指定します。好きな場所に置くことができ、好きな名前を付けることができますが、/tmpディレクトリは問題なく使用できます。名前は、使用する各ユーザー、サーバー、およびポートに対して一意である必要があります。そうしないと、衝突が発生します。


lsyncdちなみに、継続的なアクティブ スキャンの代わりとして、このツールを確認する必要があります。カーネル通知を使用してファイル システムを監視し、何かが実際に変更された場合にのみ rsync を起動します。

于 2015-09-21T08:34:31.860 に答える