問題タブ [rsync]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Pythonでrsyncを制御しますか?
別のコンピューターにデータをバックアップするために、rsyncのいくつかのインスタンスを順番に実行するPythonスクリプトを書きたいと思っていました。
現時点では、使用するコマンドを含むこのテキストファイルがあり、それらをターミナルにコピーして貼り付けているところですが、ちょっとばかげているようです。
Pythonを使用してこれを実行できるようにしたいと思います。subprocess.popenの使い方は漠然と知っていますが、パスワードを入力する場合のように、Pythonでrsyncと直接対話する方法がわかりません。Pythonはそれを行うことができますか?
何かのようなもの:
それとも、私ができる最善のことは、それを持っているか、bashスクリプトでさえ、rsyncを順番に実行し、パスワードを何度も入力する必要があることです。
前もって感謝します。
unix - キャリッジ リターンなしでログ ファイルから rsync の進行状況を表示するにはどうすればよいですか?
進行中の rsync コマンドからのログ ファイルがあります。この進行状況を実行すると、同じ行の表示情報が更新されます。このコマンドからの出力をキャプチャするとcat
、端末で正常に表示されるファイルが得られます (すべてのバックスペースと再編集が再生されます) がgrep
、ファイルで使用して処理できるようにしたいので、すべてのバックスペースが表示されますコマンドを編集します。ファイルを処理して進行状況の更新をすべて削除し、最終的な編集を含むファイルを取得するにはどうすればよいですか?
php - ディレクトリを省略した rsync 同期
わかりました。デプロイを容易にするために PHP の Web ベース インターフェイスを rsync にまとめようと試みたのは、おそらく私が初めてではありません。
ローカルに「QA」サーバーがあり、Rackspace に「ステージング」サーバーがあります。SSH キーのペアリングをセットアップしたので、2 つのサーバー間で rsync を実行でき、すべてうまく機能します。問題は、rsync が何を更新する必要があると判断するかについて、少し不安定であることです。
私が作成したスクリプトは、最初に「--dry-run」パラメーターを指定して rsync を実行し、転送が必要なすべてのリストを取得します。コマンドは次のとおりです。
これですべて正常に動作し、削除が必要なものと追加/更新が必要なものに返された文字列を解析できます。次に、階層内の位置に基づいて各チェックボックスを自動的にインデントする HTML テーブルを作成します。また、ユーザーがフォルダー内のすべてのファイルを選択できるように、JavaScript を少し使用します。
フォルダ自体を追加/削除する場合は、リストに含めます。例えば:
「/newfolder/」は 1 つのインデントで表示され、「/newfolder/file1.php」と「/newfolder/file2.php」は「/newfolder/」の下にそれぞれ 2 つのインデントで表示されるため、これはすばらしいことです。「/newfolder/」の横にあるチェックボックスは、2 つの「子」ファイルを自動的に選択し、誰もが満足します。
ただし、フォルダーにファイルを追加/更新するだけの場合は、フォルダー自体を省略します。
...
つまり、「/oldfolder/」内のすべてのファイルには 2 つのインデントがありますが、フォルダー内のすべてのファイルを選択する目に見えるメカニズムはありません。
だから私の質問はこれです:更新されたファイルのフォルダーを強制的に含めることができる利用可能なrsyncパラメーターに欠けているものはありますか、それとも配列をループするときにそれらを追加する必要がありますか? 後者の場合、それを行うための最良の方法は何でしょうか?
助けてオビ スタック オーバーフロービ、あなただけが私の希望です...
rsync - rsync --delete --files-from = list /dest/は不要なファイルを削除しません
タイトルからわかるように、フォルダをファイルのリストと同期しようとしています。このコマンドで、リストにないdest /内のすべてのファイルが削除されることを期待していましたが、削除されませんでした。
だから私は少し検索して、rsyncがこれを行うことができないことを今知っています。
しかし、私はそれが必要です、それであなたはそれをする方法を知っていますか?
PS:リストはPythonスクリプトによって作成されるため、ソリューションでPythonコードを使用することは想像に難くありません。
編集、具体的にしましょう:
リストは次のようになります。
そしてこのようなコマンド:
これは機能しますが、行を削除してもfoobar/では削除されません。
編集2:
それはどちらも機能しません...
rsync - Rsync暗号化
rsyncがファイル転送中にssh暗号化プロトコルを有効/無効にできることを私は知っています。それで、ssh暗号化プロトコルが無効になっている場合、それはrsyncが暗号化をまったく行わないことを意味しますか?
また、上記の質問をした理由は、ファイル転送の一部としてrsyncモジュールを使用しており、モジュールにはssh暗号化が使用されることを指定するものがないためです。
rsyncが暗号化を使用しない場合、理論的にはソースマシンと宛先マシンの両方でポートを開き、ファイルをソースから宛先にプッシュできます。
rsync - 更新されたファイルのみを rsync に報告させる
rsync が各ファイルに対して行ったことの詳細を (詳細フラグの 1 つを使用して) 出力すると、更新されたファイルと更新されなかったファイルの両方が含まれているようです。たとえば、-v
フラグを使用した出力のスニペットは次のようになります。
更新されたファイルにのみ興味があります。上記の場合はsorry.html
. また、更新されたディレクトリにファイルがなくても、ディレクトリ名を入力すると出力されます。この出力から更新されたファイルのない最新のファイルとディレクトリを除外する方法はありますか?
gettext - Snow Leopard上のMacPorts:rsyncライブラリがロードされていないlibintl
OS X 10.6にアップグレードした後、MacPortsに関連するあらゆる種類の特有の問題が発生しましたが、それらのほとんどは、必要に応じてライブラリを再構築するだけで解決されました。その方法では解決できないと思われる問題が1つあり、すべてのポートを再構築して、古い/ optディレクトリを完全に削除しても、効果はありません。
ただし、問題のライブラリは存在しますが、これは非常に苛立たしいことです。
これは、インストールされているgettextパッケージからのものです。
ファイルはそこにあります:
この種のエラーを検索しましたが、すべて古くなっているようです。誰かが以前にこの問題を解決したことがありますか?
rsync - Rsynch と SSH: ソースから名前を変更した場合にのみフォルダーの名前を変更します
私はrsyncのドキュメントを数時間読んでいますが、ソースで名前が変更されたときに宛先フォルダーの名前のみを変更する(フォルダーとそのコンテンツを再アップロードしない)方法をrsyncに伝える方法がわかりません。
SSH を使用して宛先に接続しています。ローカル フォルダーがソースであり、リモート サーバーが宛先です。ファイルを含むフォルダーの名前を変更すると、rsync はソース フォルダーのすべてのコンテンツを自動的に再アップロードします。私はrsyncのサーバー部分を使用していませんが、それを行うとうまくいくでしょうか?
lftp で同じ動作に遭遇しましたが、このツールにはこれらのオプションがないようです。ファイルの日付ルールに基づいている場合でも、名前が変更されたフォルダー内のファイルは削除/再アップロードされます。
誰かがこれを管理する方法を知っていれば、事前に感謝します:)
python - 非常に反復的な更新を展開する方法
サイズがそれぞれ約 150Kb の一連のバイナリ アセット (swf ファイル) があります。自宅のコンピューターでローカルに開発しており、レビューのために定期的に展開したいと考えています。私の現在の戦略は次のとおりです。
- .swf を hg (mercurial) リポジトリでもある転送ディレクトリにコピーします。
hg push
スライスホスト VPN への変更ssh
私のスライスホスト VPN にcd
私の転送ディレクトリにhg up
su www
変更されcp
たファイルは、表示用にパブリック フォルダーに入れられます。
プロセスを自動化したい。最良のシナリオは、次のようなものです。
- .swf を「クイック デプロイ」ディレクトリにコピーします。
- 単一のローカル スクリプトを実行して、上記のすべてを実行します。
私は、に興味を持っています:
su www
パブリック Web ディレクトリにファイルを転送する必要があるため、パスワードをどこに配置するかについてのアドバイス。- ローカルマシンとサーバー間の責任の分割がどのように処理されるか。
これらのタイプの変更の改訂履歴は本当に必要ないので、rsync を使用することは hg よりも優れたツールだと思います。これは、python スクリプト、シェル スクリプトとして記述できますが、ベスト プラクティスと見なされます。
最終的には、これを、ささやかな展開のニーズを処理できるシステムに組み込みたいと考えています。おそらく、このような状況や他のタイプの状況を処理するオープンソースの展開システムがあるでしょうか? 私はおそらくこの現在のニーズに合わせて独自にロールバックしますが、長期的には比較的柔軟なものが必要です.
注:私のホーム開発用コンピューターは OS X で、ターゲット サーバーは最近の Ubuntu です。私はPythonベースのソリューションを好みますが、これがシェルから処理されるのが最適な場合は、そのようにまとめても問題ありません。
svn - 高遅延ネットワーク接続を介して多くの(小さな)ファイルを同期する方法
通常、Subversion(クライアントでのsvn update、単方向)を使用してソフトウェアアプリケーションをクライアントにデプロイします。クライアントが中国にあり、サーバーがカナダにあるため、待ち時間が長い(大きなファイルのダウンロード速度が良い)ため、現在、クライアントの1つで問題が発生しています。Subversionは、非常に長い時間が経過すると、エラーが発生してタイムアウトするだけです。
私たちのアプリケーションには、たくさんの小さなファイル(.aspx、.configなど)といくつかの大きなファイル(.dll、.jpg)があり、合計で約100mb〜200mbになります。
私は現在、次のことを検討しています。
- サーバーでローカルsvnチェックアウトを実行します
- 結果をzip形式で圧縮する
- 大きなzipファイルを外部マシンにFTPまたはrsyncします
- 一時フォルダにあるファイルを解凍します。
- その一時フォルダーから通常のインストールフォルダーへのローカルrsyncを実行します。
より良い解決策はありますか?
- 宛先の近くにSubversionミラーを設定しますか?(月に数時間しか必要ありませんが、見つけるのは難しいかもしれません)
- 別のバージョン管理システムを使用していますか?(gitは待ち時間の長い接続に適していますか)?
- すべてのデータを送信する代わりに、宛先で再適用されるSubversionパッチ(バイナリファイルを含む)をパッケージ化する方法はありますか?
- DropBox(Amazon S3を使用)を使用してファイルを一時フォルダーに転送する方が良いでしょうか?