Cara membuat alat unduh dan unggah file otomatis menggunakan perintah WinSCP.


Tanggal Publikasi:9 Desember 2020.



INFOMARTION > Cara membuat alat unduh dan unggah file otomatis menggunakan perintah WinSCP.

Ikhtisar.

Buat alat pengunduhan dan pengunggahan file otomatis menggunakan perintah WinSCP. Jalankan perintah yang disediakan oleh WinSCP menggunakan command prompt. Tidak mengherankan, WinSCP menyediakan perintah-perintah. Anda biasanya menggunakan 'WinSCP.exe', tetapi 'WinSCP.com' juga tersedia. Anda hampir tidak akan pernah melihat folder "C:\Program Files (x86)\WinSCP" di tujuan pintasan, karena Anda biasanya membukanya pada dasarnya dari pintasan, tetapi jika Anda melihat tujuan pintasan, "WinSCP.com" juga harus disimpan di sana. Di sinilah alat ini dibuat.

Daftar Isi

  1. Apakah perintah WinSCP itu?
  2. Alat unduh otomatis
  3. Alat unggah otomatis
  4. Perintah lain yang mungkin sering digunakan
  5. ringkasan

1. Apakah perintah WinSCP itu?

Perintah WinSCP adalah perintah yang memungkinkan Anda untuk melakukan operasi WinSCP yang biasanya Anda lakukan di GUI. Operasi ini, yang biasanya Anda operasikan pada layar, dilakukan melalui perintah.

1-1. Apa yang bisa Anda lakukan.

Anda dapat mengunduh dan mengunggah file, membuat folder, memanggil perintah shell dan banyak hal lainnya.

Perintah yang mungkin sering digunakan, antara lain.

open・・・Digunakan untuk koneksi.

get・・・Digunakan untuk mengunduh file.

put・・・Digunakan untuk mengunggah file.

exit・・・Digunakan untuk memotong.

1-2. Apa yang tidak bisa Anda lakukan.

Pengunduhan dan unggahan file dasar dapat dilakukan, tetapi setelah menggunakan sistem, tampaknya sulit untuk mengontrol detailnya.

Misalnya, tampaknya sulit untuk "memeriksa tanggal pembaruan file dan mengambil file dengan tanggal pembaruan yang ditentukan".

Jika Anda ingin melampirkan kondisi yang kompleks ke file yang akan dimanipulasi, Anda dapat memanggil shell dengan perintah 'call', yang dapat dicapai dengan menggunakan perintah Windows, perintah Linux, dll.

2. Alat unduh otomatis

Kami ingin membuat alat yang benar-benar akan secara otomatis mengunduh log yang ditempatkan pada server Linux.

2-1. membuat

Buat alat bantu dengan kondisi berikut ini.

・Windows 10 sebagai lingkungan eksekusi.

・Server yang akan diperoleh adalah Linux.

・Alamat IP 192.168.50.10.

Pertama, buat file bat sebagai titik awal untuk aktivasi.

file_get.bat


@setlocal enabledelayedexpansion
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
@mkdir %FOLDER%
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

Kecuali untuk baris terakhir, sisa prosesnya adalah perintah Windows. Konten.

@setlocal enabledelayedexpansion

Pengaturan untuk variabel lingkungan yang tertunda. Secara singkat, deskripsi ini mencegah pengaturan nilai ke variabel yang mungkin tidak tercermin.

@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%

Proses mendapatkan yyyymmyddhmmss dari waktu saat ini dan akhirnya memasukkannya ke dalam variabel FOLDER.

@mkdir %FOLDER%

Buat folder 'yyyymmddhmmss' langsung di bawah folder tempat batch dieksekusi.

@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

WinSCP.com (perintah WinSCP). Eksekusi mengeksekusi perintah yang tercantum dalam "ftp.txt" di folder yang sama di mana file batch disimpan. Berikan jalur folder yang baru saja Anda buat sebagai argumen.

Ini menyelesaikan pembuatan berkas pemanggil. Perintah WinSCP kemudian dijelaskan dalam "ftp.txt".

ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit

Konten.

option batch on

Untuk proses yang memerlukan query, sistem secara otomatis mengasumsikan bahwa 'No' telah dipilih dan secara otomatis mengeksekusi proses. Jika Anda menyertakan ini, maka secara otomatis akan menimpa nama file duplikat apa pun. (Anda bisa membuat folder "yyyymmddhmmss" dan menaruh file-file di sana, sehingga tidak ada duplikasi nama file.)

option transfer binary

Pengaturannya adalah mentransfer data dalam mode biner.

open test:testpassword@192.168.50.10

'username:pass-word@IP address'. Sambungkan ke alamat IP "192.168.50.10".

get /var/log/httpd/access_log %1%\

Simpan '/var/log/httpd/access_log' di folder 'yyyymmddhhmmss'.('%1%' adalah argumen yang dilewatkan dalam file_get.bat)

Ekspresi reguler juga bisa digunakan, jadi jika Anda menulis "/var/log/httpd/*", seluruh log bisa diambil.

close
exit

Ini adalah proses pemutusan hubungan.

Ini melengkapi pembuatan alat.

2-2. persiapan implementasi

Sidik jari pendahuluan dilakukan sebelum eksekusi.

Jika server belum pernah terhubung melalui WinSCP, Anda akan ditanya apakah aman untuk terhubung. Jika Anda menekan 'Yes', catatan penekanan 'Yes' ditinggalkan di tempat yang disebut area registri Windows. Hal ini memastikan bahwa sistem tidak diperiksa untuk kedua kalinya. Saat menjalankan alat ini, Anda perlu melakukan ini terlebih dahulu dan menyimpan informasi tentang server di area registri untuk memastikan bahwa server aman untuk disambungkan, jadi jalankan perintah berikut ini pada prompt perintah.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Anda diminta untuk memberikan respons, masukkan 'y'.
close
exit
exit

'test:testpassword@192.168.50.10' harus diganti dengan 'username:password@IP address'.

Ini melengkapi persiapan awal.

2-3. implementasi

Akhirnya, sekarang saatnya untuk mengimplementasikannya. Klik dua kali 'file_get.bat'.

Sukses jika folder "yyyymmddhhmmss" dibuat dan log disimpan di folder tersebut.

3. Alat unggah otomatis

Langkah berikutnya adalah membuat alat untuk meletakkan file di server Linux. Konstruksi dasarnya akan sama seperti alat unduh.

3-1. membuat

Buat alat bantu dengan kondisi berikut ini.

・Windows 10 sebagai lingkungan eksekusi.

・Server tujuan adalah Linux.

・Alamat IP 192.168.50.10.

Pertama, buat file bat sebagai titik awal untuk aktivasi.

file_put.bat


@setlocal enabledelayedexpansion
@set FOLDER_NAME="put_files\*"
@set FOLDER=%~dp0%FOLDER_NAME%
@set PUT_FOLDER="/tmp/"
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0put_ftp.txt /parameter %FOLDER% %PUT_FOLDER%

Seperti yang telah dijelaskan dalam alat download otomatis, sedikit penjelasan dihilangkan, tetapi prosesnya adalah menyimpan file-file di folder 'put_files' di folder yang sama di mana file batch dieksekusi di '/tmp/'. Proses penyimpanan yang sebenarnya dijelaskan dalam "put_ftp.txt".

put_ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit

Perintah "put %1%\ %2%" meng-upload file sesuai dengan "file sumber" dan "folder tujuan" yang dilewatkan sebagai argumen, meskipun sedikit penjelasan dihilangkan karena hal ini juga dijelaskan pada alat unduh otomatis.

3-2. persiapan implementasi

Seperti halnya alat unduh otomatis, sidik jari diperiksa terlebih dahulu sebelum dieksekusi.(Tidak diperlukan jika alat unduh otomatis sudah dijalankan satu kali.)

Jalankan perintah berikut pada prompt perintah.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Anda diminta untuk memberikan respons, masukkan 'y'.
close
exit
exit

'test:testpassword@192.168.50.10' harus diganti dengan 'username:password@IP address'.

Ini melengkapi persiapan awal.

3-3. implementasi

Akhirnya, sekarang saatnya untuk mengimplementasikannya. Klik dua kali 'file_put.bat'.

Sukses jika file-file yang tersimpan di 'put_files' ditransfer ke folder '/tmp/'.

4. Perintah lain yang mungkin sering digunakan

Kami telah memperkenalkan pengunduhan dan pengunggahan dasar, tetapi juga ingin menjelaskan perintah-perintah lain yang mungkin sering digunakan.

4-1. otentikasi kunci

Sebelumnya, Anda login dengan autentikasi kata sandi sesuai dengan deskripsi berikut ini.

open test:testpassword@192.168.50.10

'buka nama pengguna: kata sandi @ alamat IP'. Untuk otentikasi kunci, yang berikut ini berlaku.

open test@192.168.50.10 -privatekey=id_rsa.ppk

'-privatekey=id_rsa.ppk' adalah jalur ke kunci. Karena terdaftar sebagai jalur relatif, maka diasumsikan bahwa kunci (id_rsa.ppk) juga berada di folder tempat file yang dapat dieksekusi (file bat) berada. Misalnya, jika kuncinya terletak langsung di bawah drive C, tulis "-privatekey=C:\id_rsa.ppk".

4-2. Memanggil cangkang

Untuk memanggil shell dengan menggunakan perintah WinSCP, tulis sebagai berikut.

option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit

'test.sh' dieksekusi oleh 'call sh /tmp/test.sh'. Juga dimungkinkan untuk meneruskan argumen. Ketika melewatkan argumen, tulislah sebagai "call sh /tmp/test.sh param1".

5. ringkasan

Perintah WinSCP telah dijelaskan.

Jika Anda biasanya menggunakan WinSCP GUI untuk mencatat dan mengunggah file setiap hari, Anda dapat mengotomatisasi ini dengan membuat alat bantu yang dijelaskan dalam artikel ini. Ini mungkin tugas kecil, tetapi bisa menyita banyak waktu, kecuali jika dilakukan setiap hari. Kami mendorong Anda untuk menciptakan alat bantu untuk meningkatkan efisiensi.

Terima kasih telah menonton sampai akhir.