ホスト間ですべてのファイルとフォルダをコピーしたい。古いホスト上のファイルは/ var/www/htmlにあり、そのサーバーへのFTPアクセスしか持っておらず、すべてのファイルをTARすることはできません。 FTP経由で古いホストに定期的に接続すると、/ home/adminフォルダーに移動します。
新しいサーバーから次のコマンドを実行してみました。
wget -r ftp://username:[email protected]
しかし、私が得るのは、作成されたindex.htmlファイルだけです。
FTPでwgetを再帰的に使用するための正しい構文は何ですか?
-m
を--mirror
でお試しください
wget -m ftp://username:[email protected]
あなたはそれを正しく持っています、あなたは最後に*が必要です:
wget -r ftp://username:[email protected]/dir/*
共有サーバーの場合、次のように使用できます。
wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password
ほとんどの共有サーバーには、username @ hostnameのようなftp-usernameがあるため、最初のwgetコマンドは機能せず、2番目のコマンドは正常に機能します。
Wgetの他に、スクリプトモードでlftpを使用することもできます。次のコマンドは、特定のリモートFTPディレクトリのコンテンツを特定のローカルディレクトリにミラーリングし、cronジョブに配置できます。
lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'
ディレクトリへの再帰を自動的に処理し、データのダウンロード元のリモートソース開始ディレクトリを指定できます。
以下のwgetコマンドを確認して、FTPからデータを再帰的にダウンロードします。
wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"
-r
:再帰的にダウンロードするためのものです。
-np
:親が昇順しないためのものです。
-nH
:URLと同じ名前のディレクトリ(abc.xyz.comなど)の作成を無効にするためのものです。
--cut-dirs
:親ディレクトリの数を無視するためのものです。このオプションの値は、コマンドによって異なります。
上記のコマンドを実行すると確認できます。
「curlftpfs-ftpホストをローカルディレクトリとしてマウントする」を使用できます。マウントすると、「cp -r」などの通常のファイルツールを使用できます。
再帰の深さのため、-rではなく-mを使用してください。
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
うまくいくはずです:
wget -r ftp://ftp:[email protected]/tst/
使用する:
wget -m ftp://192.168.0.1
そして、それはすべてのファイルとフォルダをミラーリングします。
前述のとおり、FTP経由でログインすると/ home/adminフォルダーに移動し、必要なファイルは/ var/www/htmlにあります
私はこれがあなたの場合にうまくいくと思います:
wget -r ftp://192.168.0.1/../../var/www/html
それが正しい構文です。予期した結果が得られない理由がわかりません。
相変わらずそれを行う方法は複数あります。 ncftp、特にncftpgetを試してください
これをcronなどにダンプしようとしているのかどうかはわかりますが、通常のクライアントとmgetを使用してサーバーにFTPで転送するだけではどうですか*?これは成功へのより早い道かもしれません。
ユーザー名がbrinkster/usernameのWindowsホスティングに遭遇したので、次の構文を使用するとwgetでエラーがスローされます。
wget -m ftp://brinkster/username:[email protected]
これを乗り越えるには、
wget -m ftp://brinkster%2Fusername:[email protected]
私はWindowsホスティング@ brinksterでこれに直面しなければなりませんでした。