Saya ingin menyalin semua file dan folder dari satu host ke yang lain. File-file pada host lama duduk di / var / www / html dan saya hanya memiliki akses FTP ke server itu, dan saya tidak bisa TAR semua file. Koneksi reguler ke host lama melalui FTP membawa saya ke folder / home / admin.
Saya mencoba menjalankan perintah berikut dari server baru saya:
wget -r ftp://username:[email protected]
Tapi yang saya dapatkan hanyalah file index.html yang dibuat.
Apa sintaks yang tepat untuk menggunakan wget secara rekursif melalui FTP?
Jawaban:
Cobalah
-m
untuk--mirror
sumber
--ask-password
untuk menghindari kata sandi disimpanhistory
.wget -m ftp://username:[email protected]/mydir/
Anda benar, Anda hanya perlu * di akhir:
Untuk server bersama, Anda dapat menggunakan seperti ini:
Karena sebagian besar server bersama memiliki ftp-username sesuatu seperti nama pengguna @ hostname, jadi, perintah wget pertama tidak berfungsi, dan perintah kedua berfungsi dengan baik.
sumber
-m
atau-r -l inf
karena -r memiliki kedalaman rekursi default 5. Lihat gnu.org/software/wget/manual/…Selain wget, Anda juga dapat menggunakan lftp dalam mode skrip. Perintah berikut akan mencerminkan konten direktori FTP jarak jauh yang diberikan ke direktori lokal yang diberikan, dan itu dapat dimasukkan ke dalam tugas cron:
Secara otomatis menangani rekursi ke direktori dan memungkinkan menentukan direktori awal sumber jarak jauh dari untuk mengunduh data.
sumber
Anda dapat menggunakan 'curlftpfs - me-mount host ftp sebagai direktori lokal' dan, setelah di-mount, Anda dapat menggunakan alat file normal seperti 'cp -r'.
sumber
curlftpfs
memiliki masalah kinerja besar sekarang kecuali Anda menurunkan versilibcurl3-gnutls
Periksa perintah wget di bawah ini untuk mengunduh data dari FTP secara rekursif.
-r
: Apakah untuk mengunduh secara rekursif.-np
: Tidak untuk orang tua yang naik.-nH
: Apakah untuk menonaktifkan pembuatan direktori yang memiliki nama sama dengan URL yaitu abc.xyz.com--cut-dirs
: Apakah untuk mengabaikan jumlah direktori induk. Nilai opsi ini akan berbeda untuk perintah Anda.Anda dapat memeriksa dengan menjalankan perintah di atas.
sumber
Gunakan -m daripada -r, karena kedalaman rekursi.
http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11
sumber
Harus berhasil coba:
sumber
Menggunakan:
dan itu akan mencerminkan semua file dan folder.
sumber
Itu sintaks yang tepat. Tidak yakin mengapa Anda tidak mendapatkan hasil yang diharapkan.
Seperti biasa, ada lebih dari satu cara untuk melakukannya. Coba ncftp, khususnya ncftpget
sumber
Saya bisa mengerti jika Anda mencoba untuk membuang ini ke cron atau sesuatu, tetapi mengapa tidak dengan mudah ftp ke server dengan klien normal Anda dan mget *? Ini mungkin jalan yang lebih cepat menuju sukses.
sumber
Saya pikir ini akan berhasil dalam kasus Anda:
sumber
Saya menemukan hosting Windows dengan nama pengguna sebagai brinkster / nama pengguna, jadi wget akan membuat kesalahan jika Anda menggunakan sintaks:
Untuk melewati ini, gunakan
Saya harus menghadapi ini dengan Windows hosting @ brinkster.
sumber
wget --user username --password yourpassword ftp://example.com/ftpfiles/filename
akan melakukan pekerjaan atau Anda dapat menambahkan * alih-alih nama file yang dimasukkan: membuat wget memikirkan port yang tidak valid dalam kasus Anda.sumber