Pembuatan skrip FTP dengan DriveHQ CommandFTP

Pembuatan skrip FTP/SFTP dengan DriveHQ CommandFTP


1. Perkenalan
2. Sintaks dan Parameter CommandFTP DriveHQ
3. Membuat File Skrip FTP
3.1 Contoh File Skrip FTP
3.2 Berkas Skrip FTP dengan Parameter
4. Otomatiskan Transfer File dengan Penjadwal Tugas Windows
5. Sinkronisasi Folder Otomatis menggunakan DriveHQ CommandFTP
6. Referensi Perintah FTP
6.1 Perintah FTP Standar
6.2 Perintah FTP Tingkat Lanjut DriveHQ

1. Perkenalan

DriveHQ CommandFTP adalah klien FTP & SFTP berbasis baris perintah yang andal, dirancang untuk menggantikan klien FTP Windows. Aplikasi ini mendukung scripting FTP, dan kompatibel dengan server FTP/SFTP standar apa pun.

FTP/SFTP sangat populer dalam mentransfer file/folder berukuran besar melalui internet. Klien FTP baris perintah banyak digunakan dalam transfer file otomatis dengan skrip FTP. Banyak orang menggunakan klien FTP baris perintah bawaan di Windows. Namun, klien FTP bawaan memiliki beberapa kekurangan utama:

  • 1. Ini hanya mendukung FTP mode aktif, yang sering diblokir oleh router, firewall, atau perangkat lunak keamanan.
  • 2. Hanya mendukung FTP biasa tanpa enkripsi data.
  • 3. Fitur ini tidak mendukung melanjutkan/mencoba ulang secara otomatis.

DriveHQ CommandFTP dirancang untuk menggantikan klien FTP bawaan Windows. Aplikasi ini memiliki keunggulan sebagai berikut:

  • 1. Perangkat ini mendukung FTP mode aktif dan pasif.
  • 2. Aplikasi ini mendukung FTP melalui SSL (FTPS & FTPES) dan SFTP.
  • 3. Fitur ini mendukung melanjutkan/mencoba ulang secara otomatis.
  • 4. Ini mendukung kompresi dan enkripsi data.
  • 5. Aplikasi ini mendukung pengunduhan/pengunggahan folder.
  • 6. Fitur ini mendukung mirroring/sinkronisasi folder.
  • 7. Fitur ini mendukung pencatatan peristiwa untuk keperluan audit dan pemecahan masalah.
  • 8. Alat ini dapat mengirimkan laporan melalui email setelah suatu operasi.
  • 9. Ini mendukung skrip FTP yang lebih canggih.

Dalam banyak kasus, DriveHQ CommandFTP dapat langsung menggantikan klien FTP Windows. Keduanya memiliki sintaks dan parameter baris perintah yang serupa. Namun, DriveHQ CommandFTP menawarkan lebih banyak fitur. Ia dapat menangani tugas transfer file yang rumit hanya dengan satu perintah. Dengan dukungannya untuk SFTP, Anda dapat menulis file skrip FTP, tetapi menjalankannya dengan server SFTP.

2. Sintaks dan Parameter CommandFTP DriveHQ

Sintaksis


cmdftp FTP_SERVER [-u:USERNAME] [-p:PASSWORD] [-i] [-A] [-k:"PRIVATE_KEY_FILE"] [-s:"FTP_SCRIPT_FILE"] [-d:"LOG_FILE"] [-m:"SOURCE_FTP_SERVER", "DESTINATION_FTP_SERVER"] [CMDOPTIONS]
cmdftp [-s:"FTP_SCRIPT_FILE"] [-d:"logfile"]

Parameter

Parameter Keterangan
FTP_SERVER Nama server FTP/SFTP atau alamat IP seperti ftp.drivehq.com, atau ftp://ftp.drivehq.com atau ftps://ftp.drivehq.com. Ini wajib diisi kecuali jika parameter menyertakan -s:FTP_SCRIPT_FILE
-u:USERNAME Menentukan nama pengguna akun FTP/SFTP.
-p:PASSWORD Menentukan kata sandi akun FTP/SFTP.
-k:"PRIVATE_KEY_FILE" Opsional. Menentukan jalur file kunci privat SFTP.
-s:"FTP_SCRIPT_FILE" Opsional. Menentukan jalur file skrip FTP. Jika parameter ini diberikan, maka parameter lain akan diabaikan, kecuali opsi "-d:LOG_FILE".

Opsi Perintah

/xo[:time] Kecualikan file lama
/xn[:time] Kecualikan file yang lebih baru
/xf:filenames Kecualikan file, file dipisahkan oleh koma
/xd:foldernames Kecualikan folder, folder dipisahkan oleh koma

Opsi pencatatan

-d:"LogFileName" Menentukan jalur file log. Jika menggunakan "-d" tanpa LogFileName, maka log akan ditampilkan di jendela konsol.

3. Membuat File Skrip FTP

Skrip FTP sangat populer di kalangan administrator TI dan integrator sistem. Skrip ini banyak digunakan dalam pencadangan data otomatis dan transfer file. Skrip FTP memungkinkan Anda membuat file teks yang berisi daftar perintah dan input FTP. Anda kemudian dapat menjalankan perintah-perintah ini secara berurutan dalam satu kali eksekusi. Karena sebuah file skrip dapat berisi banyak perintah FTP, file tersebut dapat menyelesaikan tugas transfer file yang sangat canggih.

Pembuatan skrip FTP dengan klien FTP Windows bawaan sangat terbatas: Hanya mendukung FTP biasa, yang tidak aman; hanya mendukung Active Model FTP, yang sering diblokir oleh router/firewall. DriveHQ CommandFTP mendukung sebagian besar fitur klien FTP Windows; selain itu, ia mendukung banyak fitur yang tidak tersedia di klien FTP Windows. DriveHQ CommandFTP kompatibel dengan semua server FTP standar.

Untuk menulis file skrip FTP, Anda dapat menjalankan perintah FTP dalam mode interaktif terlebih dahulu. Buka jendela command prompt, ketik perintah berikut seperti yang ditunjukkan pada tangkapan layar di bawah ini:

Perintah-perintah ini biasanya meliputi: Menghubungkan ke server FTP, masuk ke server, mencantumkan file/folder dalam direktori, mengubah direktori saat ini, mengunggah/mengunduh/menghapus file, dan sebagainya. Jika Anda hanya sesekali menggunakan FTP, maka metode di atas sudah cukup. Namun, jika Anda perlu berulang kali mentransfer/mencadangkan/menghapus file, misalnya sebagai bagian dari tugas pencadangan terjadwal, atau EDI (Electronic Data Interchange) dengan perusahaan lain, Anda dapat dengan mudah menulis file skrip yang dapat digunakan berulang kali. Dipadukan dengan Penjadwal Tugas yang didukung oleh sistem operasi, Anda dapat mengotomatiskan proses bisnis.

Contoh File Skrip FTP
File skrip FTP memiliki perintah/input yang sama seperti yang digunakan dalam sesi FTP interaktif. Pada dasarnya, Anda hanya perlu membuat file teks di editor teks (misalnya Notepad), dan mengetikkan perintah dan input seperti yang Anda lakukan dalam mode interaktif. CommandFTP DriveHQ memiliki antarmuka yang sangat mirip dengan klien FTP Windows. Perintah-perintah berikut dapat dijalankan baik di klien FTP Windows maupun klien CommandFTP DriveHQ. Untuk menggunakan CommandFTP, ketikkan cmdftp, bukan ftp. Contoh::

C:\>ftp
ftp> open ftp.drivehq.com
Connected to ftp.drivehq.com.
220 Welcome to the most popular FTP hosting service! Save on hardware, software,
 hosting and admin. Share files/folders with read-write permission. Visit http:/
/www.drivehq.com/ftp/;
User (ftp.drivehq.com:(none)): dhqdemo
331 User name ok, need password.
Password: xxxxxxxxx
230 User dhqdemo logged on.
ftp> cd test
250 CWD command successful. "/test" is current directory.
ftp> delete orders.xml.bak
550 File not found.
ftp> rename orders.xml orders.xml.bak
350 File exists, ready for destination name.
250 File "/test/orders.xml" renamed successfully.
ftp> put c:\test\orders.xml
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
226 Transfer complete
ftp: 41 bytes sent in 0.06Seconds 0.65Kbytes/sec.
ftp> quit
221 Bye

C:\>


Seperti yang Anda lihat, perintah-perintah ini akan:
- Masuk ke server FTP: ftp.drivehq.com;
- Masukkan nama pengguna dan kata sandi;
- Ubah ke direktori lokal "c:\test";
- Ubah ke direktori FTP "/test";
- Hapus file "Orders.xml.bak" (jika ada) di server FTP;
- Ubah nama file "Orders.xml" (jika ada) menjadi "Orders.xml.bak" di server FTP;
- Unggah file lokal "Orders.xml" ke server FTP;
- Keluar

Anda dapat menjalankannya di jendela perintah untuk men-debug kode sebelum menyimpannya ke dalam file skrip. Isi skrip akan seperti berikut ini:

open ftp.drivehq.com
USERNAME
xxxxxxxxx
cd test
delete orders.xml.bak
rename orders.xml orders.xml.bak
put c:\test\orders.xml
quit

Skrip FTP di atas dapat dijalankan setiap hari untuk secara otomatis mentransfer informasi pesanan baru ke server FTP. Skrip ini akan mengunggah file "Orders.xml" terbaru ke server FTP; sebelum mengunggah file, skrip akan mengganti nama (membuat cadangan) file sebelumnya.
Untuk menjalankan skrip FTP, Anda cukup mengeksekusi perintah FTP dengan opsi -s. Dengan klien FTP Windows, Anda dapat menggunakan:
	ftp -s:ftpscript.txt 

Dengan klien DriveHQ CommandFTP, Anda dapat menggunakan
	cmdftp -s:ftpscript.txt 
    

Skrip FTP dengan Parameter
Skrip FTP di atas bersifat statis. Skrip ini dapat dijalankan berulang kali, tetapi tidak terlalu fleksibel. Misalnya, jika Anda perlu mentransfer data untuk beberapa klien, Anda mungkin ingin menggunakan folder yang berbeda. Untuk menggunakan kembali skrip FTP yang sama, skrip tersebut perlu mendukung parameter tambahan. Ada dua solusi:
(1) Gunakan file skrip batch untuk membuat file skrip FTP secara dinamis. Skrip batch Windows dapat menerima parameter baris perintah. Jika Anda menggunakan klien FTP Windows, ini adalah satu-satunya solusi.
(2) DriveHQ CommandFTP mendukung parameter tambahan.
Dengan metode pertama, Anda perlu membuat file batch, misalnya test.bat. Simpan file tersebut di folder C:\test. Anda dapat menjalankan file batch dengan mengetikkan perintah berikut:

	c:\test\test.bat PARAM1 PARAM2 ...

File test.bat akan seperti ini:

@echo off
echo open ftp.drivehq.com> ftpscript.txt
echo USERNAME>> ftpscript.txt
echo PASSWORD>> ftpscript.txt
echo cd %1>>  ftpscript.txt
echo delete %2.bak>>  ftpscript.txt
echo rename %2 %2.bak>> ftpscript.txt
echo put c:\%1\%2>> ftpscript.txt
echo quit>> ftpscript.txt


Dengan cara ini, Anda dapat meneruskan argumen dari file batch ke file skrip FTP. Skrip batch yang sama dapat digunakan kembali untuk perusahaan yang berbeda, misalnya:
    c:\test\test.bat c:\OrdersOfCompanyA ordersOfCompanyA.xml
    c:\test\test.bat c:\OrdersOfCompanyB ordersOfCompanyB.xml
Dengan DriveHQ CommandFTP, Anda dapat menjalankan skrip FTP dengan argumen tambahan. Dengan cara ini, Anda tidak perlu membuat file skrip batch. Anda cukup menjalankan skrip FTP dengan perintah berikut:
    
cmdftp -s:ftpscript.txt argument1 argument2 argument3 ...
    
File skrip FTP perlu sedikit dimodifikasi sebagai berikut:

# %1 is like "test", %2 is like "orders.xml"
# This file is saved as c:\temp\ftpscript2.txt
# to run it, use:
# cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml

open ftp.drivehq.com
USERNAME
PASSWORD
cd /%1
delete /%1/%2.bak
rename /%1/%2 /%1/%2.bak
put c:\%1\%2
quit

Dalam file skrip di atas, nama folder diganti dengan %1, dan nama file diganti dengan %2. Untuk menjalankan skrip FTP, Anda harus memberikan parameter ini sebagai argumen baris perintah.
    
cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
    
Saat DriveHQ CommandFTP menjalankan file skrip, ia akan mengganti %1 dengan "test" dan %2 dengan "orders.xml".

4. Otomatiskan transfer file dengan Penjadwal Tugas Windows

Baik Anda menggunakan file batch, atau langsung menggunakan DriveHQ CommandFTP, Anda dapat menjadwalkan transfer file di Penjadwal Tugas Windows. Anda dapat menjadwalkan tugas untuk dijalankan setiap hari, mingguan, atau bulanan. Di Pengaturan Lanjutan, Anda bahkan dapat mengatur tugas untuk dijalankan setiap beberapa jam atau menit. Anda dapat mengatur waktu dalam sehari untuk memulai tugas. Untuk meluncurkan Penjadwal Tugas, ketik "Penjadwal tugas" di kotak pencarian, lihat tangkapan layar di bawah ini:

Launch Windows Task Scheduler

Klik Penjadwal Tugas, maka Penjadwal Tugas Windows akan diluncurkan.

Click create basic task in Windows Task Scheduler

Untuk membuat tugas, klik "Buat Tugas Dasar".

Create basic scheduled task

Masukkan nama dan deskripsi tugas, lalu klik Berikutnya.

Select task trigger / schedule

Pilih jadwal tugas Anda. Anda dapat memilih harian, mingguan, dan bulanan. Jika Anda ingin menjalankan tugas setiap jam, Anda dapat melakukannya di Pengaturan Lanjutan nanti. Klik Berikutnya untuk mengatur Tindakan.

Scheduled Task - Action - select a program

Di halaman Tindakan, pilih "Mulai program", lalu klik Berikutnya.

Scheduled Task - Action - Select DriveHQ CommandFTP

Telusuri untuk memilih DriveHQ CommandFTP (cmdftp.exe) sebagai program. Tambahkan parameter baris perintah di kotak teks "Tambahkan Argumen". "Mulai di" bersifat opsional. Anda dapat mengaturnya ke folder yang sama dengan file EXE. Klik Berikutnya untuk menyelesaikan pembuatan tugas.

Untuk mengakses Pengaturan Lanjutan, klik "Pustaka Jadwal Tugas", Anda dapat melihat daftar tugas terjadwal. Klik dua kali pada tugas "Unggah Pesanan", Anda dapat mengedit pengaturan tugas.

Scheduled Task - Advanced Settings - Edit Task Properties

Perlu dicatat bahwa secara default, tugas hanya akan berjalan saat pengguna masuk. Anda dapat mengubah pengaturan di sini untuk menjalankan tugas bahkan saat pengguna tidak masuk.

5. Sinkronisasi Folder Otomatis menggunakan DriveHQ CommandFTP

DriveHQ CommandFTP mendukung pencermian folder. Sinkronisasi folder lokal dengan folder FTP sangat mudah. Cukup gunakan perintah berikut:

	cmdftp FTP_SERVER -u:username -p:password -m:"LOCAL_FOLDER|FTP_FOLDER"

Dengan menggunakan Penjadwal Tugas Windows, Anda dapat menjalankan perintah ini untuk menyinkronkan kedua folder secara berkala.

6. Referensi Perintah FTP

Setelah Anda masuk ke server FTP, Anda dapat mengirim perintah FTP ke server FTP tersebut. Klien FTP Windows mendukung perintah-perintah berikut. Harap dicatat bahwa perintah-perintah ini tidak sama dengan Perintah FTP yang didefinisikan dalam Protokol FTP. Setiap perintah protokol FTP biasanya hanya menangani satu masalah sederhana. Sebuah perintah FTP di klien FTP Windows dapat menggunakan beberapa perintah protokol FTP.

DriveHQ CommandFTP mirip dengan klien FTP Windows. Aplikasi ini mendukung perintah dan sintaks yang serupa. Selain itu, aplikasi ini juga mendukung beberapa perintah FTP tingkat lanjut khusus DriveHQ, misalnya perintah untuk menyalin, memindahkan, mengunggah, mengunduh, atau menghapus folder.

6.1 Perintah Klien FTP Windows

Klien FTP Windows (ftp.exe) mendukung perintah FTP berikut ini:
Perintah FTP Keterangan
! Perintah ini beralih antara sistem operasi lokal dan server FTP. Saat Anda masuk ke server FTP, secara default akan menggunakan server FTP tersebut. Jika Anda ingin menjalankan perintah secara lokal, Anda biasanya dapat menggunakan !CMD_NAME, e.g. !dir, !mkdir, dll.
? Menampilkan informasi Bantuan.
append Menambahkan ke sebuah file.
ascii Atur mode transfer ASCII.
bell Aktifkan "Bunyi bip saat perintah selesai".
binary Atur mode transfer biner.
bye Putuskan koneksi sesi FTP dan keluar.
cd Ubah direktori.
close Hentikan sesi FTP.
delete Menghapus sebuah file.
debug Aktifkan atau nonaktifkan mode debugging.
dir Menampilkan daftar file dan subfolder dalam sebuah direktori.
disconnect Putuskan koneksi sesi FTP.
get Mengambil file dari server FTP jarak jauh.
glob Aktifkan atau nonaktifkan globbing. Saat dimatikan, karakter wildcard dalam nama file (dalam meletakkan Dan mendapatkan perintah) ditafsirkan secara harfiah.
hash Aktifkan atau nonaktifkan pencetakan "#" untuk setiap buffer yang ditransfer.
help Tampilkan informasi Bantuan; biasanya gunakan help COMMAND_NAME.
lcd Tampilkan direktori kerja lokal saat ini jika diketik sendiri; jika tidak, ubah direktori kerja lokal.
literal Kirim perintah sembarang ke server FTP yang terhubung dengan respons satu baris yang diharapkan.
ls Daftar file di folder FTP.
mdelete Menghapus beberapa file sekaligus di server FTP.
mdir Menampilkan daftar file/subfolder dari beberapa direktori FTP.
mget Unduh beberapa file dari server FTP ke folder kerja lokal Anda.
mkdir Buat direktori baru.
mls Daftar isi dari beberapa direktori FTP.
mput Unggah beberapa file lokal ke server FTP.
open Hubungkan ke server FTP.
prompt Mengaktifkan atau menonaktifkan permintaan interaktif pada beberapa perintah.
put Unggah satu file ke server FTP.
pwd Cetak direktori kerja pada server FTP.
quit Putuskan koneksi dari server FTP dan keluar.
quote Sama seperti perintah literal (Kirim perintah ftp sembarang).
recv Mengunduh/menerima file dari server FTP.
remotehelp Dapatkan bantuan dari server jarak jauh.
rename Mengganti nama file di server FTP.
rmdir Menghapus direktori di server FTP.
send Kirim satu file.
status Menampilkan status opsi saat ini.
trace Aktifkan atau nonaktifkan pelacakan paket.
Type Atur jenis transfer file.
user Kirim informasi pengguna baru (nama pengguna).
verbose Aktifkan atau nonaktifkan mode verbose.

6.2 Perintah FTP Tingkat Lanjut DriveHQ

DriveHQ CommandFTP mendukung beberapa perintah FTP tingkat lanjut lainnya:

Perintah FTP Keterangan
download Unduh folder atau file.
Sintaksis: Download [FTP-FILEorFOLDER-PATH] [LOCAL-FILEorFOLDER-PATH]
upload Unggah folder atau file.
Sintaksis: Upload [LOCAL-FILEorFOLDER-PATH] [FTP-FILEorFOLDER-PATH]
mirror Mencerminkan folder lokal dan folder FTP.
Sintaksis: MIRROR [LOCAL-FOLDER-PATH] [FTP-FOLDER-PATH]
deleteoldfiles Di dalam folder yang ditentukan, hapus file yang lebih lama dari x hari.
Sintaksis: deleteoldfiles [FTP-PATH] /xo:[time]