問題タブ [lftp]
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.
linux - 私の基準を満たさないlftpミラーリングディレクトリ
私は、リモートディレクトリをローカルディレクトリに効率的にミラーリングする必要があるlftpスクリプトを作成しており、一度に複数のギガバイトファイルを転送する可能性があります。
要件の1つは、ローカルユーザーがローカルファイルを不要になったときに削除できることです。このスクリプトを実行する「ローカル」コンピューターが複数あるため、リモートファイルを削除したくないのは、それが必要です、持っています。そのため、スクリプトは--newer-thanフラグを使用して、lftpスクリプトが最後にローカルで実行されてからリモートサーバー上で新規/変更されたファイルのみをミラーリングします。
スクリプトの重要な部分は次のとおりです。
EOFはbashスクリプトの実際の終わりではないことに注意してください。
したがって、last.runファイルのタイムスタンプよりも新しいshare /ディレクトリ自体を含め、share/ディレクトリ内のものを除いて$remote_dir内のすべてを除外します。
これは、share /という別の特定の名前のディレクトリがshareWHATEVER/と呼ばれる場合を除いて、期待どおりに機能します。
したがって、share / shareWHATEVER/stuff.txtが存在します。
初めて実行すると、shareWHATEVER / stuff.txtがリモートからローカルにコピーされ、すべて問題ありません。
shareWHATEVERディレクトリ全体(stuff.txtを含む)をローカルで削除すると、次にスクリプトを実行するときに、stuff.txtはミラーリングされませんが、リモートサーバーでタイムスタンプが変更されていなくても、shareWHATEVERはミラーリングされます。
したがって、ローカルでは、ディレクトリが空のshare /shareWHATEVER/のように見えます。
自身のタイムスタンプもファイルのタイムスタンプもローカルチェックよりも新しいものではないのに、shareWHATEVERがコピーされる理由はありますか?
ありがとう。
java - コマンドラインでの引用
LFTP 用の maven プラグインを作成しようとしていますが、これには Java アプリケーションから LFTP コマンド ライン プログラムを呼び出す必要があります。
ただし、単一引用符、二重引用符、エスケープされた単一/二重引用符を使用して、渡されたコマンドを処理することはできません。
これまでのコードは次のとおりです。
そして、次に何を試すべきかについての提案を探しています。
編集 #1: and を事前に作成された文字列として使用しようとしorg.apache.commons.exec.CommandLineましたが、次のエラーが発生します。
しかし、生成されたコマンドを印刷して手動で実行すると、正常に動作します。
編集 #2:いくつかの明確さを追加しました。
linux - lftp のロギング場所
lftp の使用中に、xfer:log 設定が「yes」に設定されていると、ファイル転送が ~/.lftp/transfer_log に記録されます。
lftp の 2 つのインスタンスが同時に実行されているとどうなりますか? ログファイルは混同されますか?
ログファイルの書き込み先を変更する方法はありますか?
ありがとう。
ftps - UbuntuからlftpおよびFTPSを使用してYahooWebホスティングに接続できません
私はUbuntu12.10を実行しており、Yahoo Webhostingを使用しています。また、独自のドメイン「example.com」も持っています。以前はFTPを使用して、ウェブホスティングアカウントとの間でファイルを転送し、ウェブサイトを更新していました。しかし、YahooはFTPのサポートを終了したばかりであり、ユーザーはFTPSのみを使用する必要があります。FTPは安全ではなく、FTPSへの移行が必要であることがわかっているので、この変更に満足しています。そこで、lftp(http://lftp.yar.ru/)を見つけました。これは、YahooWebホスティングとの間でファイルを転送するために使用できるFTPSクライアントのようです。「sudoapt-getinstalllftp」でインストールできましたが、YahooWebhostingに接続しようとすると動作しません。
これが私のシステム情報です:
user @ hostname:〜/ Desktop >> more /etc/issue.net Ubuntu 12.10
user @ hostname:〜/ Desktop >> uname -a Linux mojave 3.5.0-23-generic#35-Ubuntu SMP Thu Jan 24 13:05:29 UTC 2013 i686 i686 i686 GNU / Linux
user @ hostname:〜/ Desktop >> lftp -v LFTP | バージョン4.3.8| Copyright(c)1996-2012 Alexander V.Lukyanov
LFTPはフリーソフトウェアです。フリーソフトウェアファウンデーションによって公開されているGNUGeneralPublic Licenseのバージョン3、または(オプションで)それ以降のバージョンの条件の下で、LFTPを再配布および/または変更できます。
このプログラムは、役立つことを期待して配布されていますが、いかなる保証もありません。商品性または特定目的への適合性の黙示の保証もありません。詳細については、GNU GeneralPublicLicenseを参照してください。
GNU GeneralPublicLicenseのコピーをLFTPと一緒に受け取っているはずです。そうでない場合は、http://www.gnu.org/licenses/を参照してください。
バグレポートと質問をメーリングリストに送信します。
使用されるライブラリ:Readline 6.2、GnuTLS 2.12.14、zlib 1.2.7
これが私がそれを行っていた方法です:user @ hostname:〜/ Desktop >> ftp username@ftp.example.com
ここで、以下のコマンドを試しましたが、機能しません:user @ hostname:〜/ Desktop >> lftp username@ftp.example.com Password:lftp username@ftp.example.com:〜> ls
警告:gnome- keyring ::接続できませんでした:/ run / user / username / keyring-EvxB3g / pkcs11:そのようなファイルまたはディレクトリはありませんls:致命的なエラー:証明書の検証:信頼されていませんlftp username@ftp.example.com:〜>終了
私は何が間違っているのですか?lftpでYahooWebhostingへのFTPSセッションを作成するにはどうすればよいですか?
助けてくれてありがとう!ほんとうにありがとう!!
スティーブマクマホン
ftp - PORT コマンドを認識しないサーバーでの LFTP アクティブ モード
LFTP を使用してサーバーからファイルを転送していますが、残念ながら PORT コマンドを認識しません。私はサーバーを制御できず (サーバーの詳細がわかりません)、アクティブ モードを使用する必要があります。
これは次のようなコマンド ラインです。
これはデバッグ出力です:
リモートサーバーがPORTコマンドをサポートしていないため、LFTPはデータソケットへの接続を放棄しているようです。LFTP が引き続きポート 20 に接続できることを確認する方法はありますか? FTP マニュアルでは明らかに問題ありません。
lftp - lftp を使用してリモート ファイルをダウンロードして削除する
コマンドラインのみを使用して、lftpを使用してリモートファイルをダウンロードおよび削除する方法がわかりません。
bashでもOKです。
フラグと完全なコマンド ラインとは何ですか? 私が理解できるのはmirrorコマンドだけですが、それはリモートサーバーにファイルを残します。
rsync - lftp ミラーのエラー メッセージ「ソース: ディレクトリです」
私はユーザー A1、パスワード P1 としてマシン A にいて、フォルダー L1 を持っています。リモート マシン B 上のユーザー A2 (P1) のフォルダー L2 との同期を維持したいと考えています。rsync が ftp 経由で機能しないことがわかっているため、A に lftp をインストールしました。
マシン A でスクリプトを作成しました (マシン B にはスクリプトを配置できません)。
ファイルはコピーされますが、「ソース: ディレクトリです」というメッセージが表示されます
-R フラグを試し、L1 と L2 の最後に / を追加しましたが、うまくいきませんでした。このメッセージを消すにはどうすればよいですか?
bash - while ループを含むデータ パイプライン スクリプトが WAITING_FOR_DEPENDENCE 状態でスタックする
ShellCommandActivity の Amazon Data Pipeline の一部として、いくつかの追加機能 (lftp など) をインストールして、Amazon Linux 64 ビットを実行している EC2 インスタンスで次のスクリプトを実行しようとしています。
行を削除すると、while完了まで実行されます (ShellCommandActivity は FINISHED ステータスに達します) が、そこにある場合、ShellCommandActivity が WAITING_ON_DEPENDENCIES ステータスになるという意味で、スクリプトは「失敗」します。
残念ながら、この場合、Data Pipeline サービスはログを書き出さないため、なぜ問題が発生するのかわかりません。同じイメージとインスタンス タイプでインスタンスを作成し、ボックスにログインして、自分でコマンドを実行します。
コードからすでに明らかなように、これらすべての目的は、S3 バケット内のファイルを sftp サーバーから削除することです。
ノート:
INPUT1_STAGING_DIRは S3 バケットであり、その部分は Data Pipeline によって管理されており、この部分が機能していることは既に確認済みです- スクリプトは実際にはすべて 1 行で実行されます。実行しやすいように行は分割されていますが、展開すると、4 行すべてがそれぞれの間にスペースがあるだけで連結されます。したがって、
&&各行の最後と;3 行目のすべてが連結されます。
便宜上、より適切なフォーマットのコードを次に示します。