Perintah Linux & Keterampilan Shell
wget: Pengunduh yang Tidak Pernah Tidur
wget adalah curl untuk pekerjaan yang diukur dalam jam: mirror, arsip, penarikan rekursif, dan batch cron yang berjalan saat tidak ada yang menonton. Ini berulang, menghormati robots.txt, melanjutkan transfer yang terputus secara default, dan menyesuaikan diri dengan batas kecepatan dan interval tunggu, yang merupakan kesopanan yang diserahkan kepada penelepon. Di antara kedua alat tersebut, pembagiannya bersih: wget untuk jumlah besar dan kesabaran, curl untuk presisi, dan tim yang mengetahui keduanya jarang membutuhkan pemasang ketiga.
Poin Utama
- Pencerminan adalah satu baris: wget --mirror --convert-links --adjust-extension --no-parent https://docs.example.com; abaikan --no-parent dan arsip dokumentasi diam-diam menjadi penjelajahan semua yang ada di atasnya.
- Lanjutkan dan coba lagi secara gratis: wget -c mengambil cadangan transfer yang terputus, dan --tries=10 --waitretry=5 mengeluarkan server yang tersendat di tengah-tengah alih-alih gagal dalam pekerjaan pada kedutan pertama.
- Kesopanan memiliki tanda: --limit-rate=200k, --wait=1, dan --random-wait menjaga agar batas kecepatan upstream tidak tersandung atau klausul penyalahgunaan server bersama; hosting bersama ditambah perayap yang tidak dibatasi adalah persahabatan singkat.
- robots.txt dipatuhi secara default; -e robots=off menimpanya dengan sengaja, dan menggunakan penggantian tersebut terhadap situs produksi orang lain menyebabkan unduhan massal berubah menjadi tiket insiden.
- wget -O /dev/null -nv https://host/health adalah probe pemantauan satu baris yang kode keluarnya membawa diagnosis: 4 adalah kegagalan jaringan, 8 adalah kesalahan server, dan keduanya mengalahkan cron yang diam.
- Konversi penting setelah faktanya: --convert-links menulis ulang situs yang dicerminkan untuk navigasi offline, dan --adjust-extension menyimpan halaman yang dihasilkan CMS di bawah ekstensi yang dapat dilayani oleh alat lokal.
- Pekerjaan massal di cron mendapatkan file kunci, atau proses yang tumpang tindih menulis ke file setengah jadi masing-masing sementara --waitretry secara diam-diam merentangkan pekerjaan melewati jendelanya; wget tidak memiliki mutex internal.
- Ketahui batasannya: formulir, sesi yang banyak cookie, dan titik akhir API adalah milik curl, dan halaman yang dibuat dengan JavaScript dicerminkan sebagai shell kosong karena wget mengikuti tautan, bukan skrip.
Catatan Lapangan
Satu mirror tanpa --no-parent menjelajahi empat puluh gigabyte perpustakaan media klien dalam semalam dan hampir memenuhi disk. Bendera kesopanan dipasang satu kali dan disalin selamanya.
Pertanyaan Umum
Mengapa mirror saya hanya berisi satu halaman?
Tanda cakupan melakukan pekerjaan yang ingin dibatalkan oleh seseorang: pembatasan robots.txt, --no-parent, batas kedalaman, atau situs yang dirender dengan JavaScript. wget mengikuti tautan yang dapat dilihatnya; periksa -o wget.log sebelum menyalahkan alat tersebut.
Kapan saya harus memilih wget over curl untuk satu unduhan?
Untuk apa pun yang dapat dilanjutkan atau dapat diandalkan cron: -c kelanjutan, percobaan ulang bawaan, dan stempel waktu (--timestamping) jadikan pilihan rentang perhatian rendah; curl memberi Anda hal yang sama hanya jika Anda merakitnya sendiri.
Apakah sah atau sopan untuk mencerminkan situs publik?
Kepemilikan diputuskan secara legal, robots.txt dan pemuatan diputuskan dengan sopan: hormati file robot, batasi ke tingkat yang manusiawi, dan pilih ekspor atau API resmi saat target menawarkannya.
Mengapa beberapa situs mengembalikan 403 ke wget biasa?
Pemfilteran agen pengguna, biasanya disengaja; --user-agent='Mozilla/5.0' membantu Anda, tetapi 403 yang difilter juga berarti operator mengawasi, jadi dialog atau API adalah langkah berikutnya yang lebih baik.
Bagaimana Kinetikatech membantu dengan perintah linux & keterampilan shell
Kami telah menangani ini ratusan kali: Perintah dan kebiasaan skrip yang menentukan apakah administrator mengoperasikan server atau melawannya: mencari, mengubah, mentransfer, dan mengawasi teks dan proses dengan alat yang ada di setiap instalasi dasar. Dengan Keamanan Server Linux dan Manajemen Server, Anda mendapat siklus lengkap: kami menilai, mengimplementasikan, memantau 24 jam, dan merespons dalam 30 menit saat itu penting.