Skrip Shell untuk Muat Naik Fail ke Subdirektori Yang Sama pada Pelayan Jauh

Tugas yang sangat biasa untuk pembangun web ialah memuat naik satu fail daripada subdirektori pada kotak pembangunan anda ke subdirektori yang sama pada pelayan jauh. Malangnya, ini selalu menjadi proses manual yang menjengkelkan yang melibatkan penukaran direktori pada kedua-dua pelayan, dan membuang banyak masa.



Jadi, saya telah mengambil tanggungjawab sendiri untuk menulis skrip shell untuk mengautomasikan ini untuk saya, menggunakan scp untuk penyalinan fail selamat. (Nota Sampingan Penting:ftp sangat tidak selamat, gunakan WinSCP sebaliknya)

Masalah utama yang perlu diselesaikan ialah pemasangan WordPress saya pada mesin pembangunan saya mempunyai direktori asas yang berbeza daripada pemasangan pada pelayan saya. Pada mesin pembangunan saya ia adalah /var/www, dan pada pelayan saya adalah sesuatu yang lebih seperti /var/www/howtogeek/docs/. Saya memutuskan untuk memindahkannya ke pembolehubah pada permulaan skrip, seperti ini:





SSHSERVER=thegeek@hostname.com
RDIR = / var / www / howtogeek / docs
LDIR = ' / var / www'

Ambil perhatian bahawa direktori tempatan(LDIR) dalam skrip mempunyai sebelum setiap / dalam laluan. Ini kerana kita akan menghantar ini ke dalam perintah sed kemudian dalam skrip, jadi kita perlu melarikan diri dari nilai tersebut. Saya pasti ada cara lain untuk mengatasinya, tetapi saya tidak menyedarinya.



Seterusnya, saya menyediakan log masuk ssh automatik. Untuk melakukan ini, anda perlu menjalankan utiliti ssh keygen terlebih dahulu seperti:

ssh-keygen -t rsa

Iklan

Kemudian anda perlu menyalin fail ~/.ssh/id_rsa.pub ke fail ~/.ssh/authorized_keys pada pelayan jauh. Jika direktori ~/.ssh telah dibuat pada pelayan jauh (mungkin ingin menyemak), maka anda boleh menjalankan arahan ini untuk menyalin kekunci ke atas:

kucing ~/.ssh/id_rsa.pub | ssh pengguna@nama hos 'kucing >> .ssh/authorized_keys'

Kini kami mempunyai log masuk ssh automatik, yang akan membolehkan penggunaan utiliti scp tanpa kata laluan. Sekarang mari kita lihat arahan scp yang akan kita gunakan dalam skrip:

scp $ 1 $ SSHSERVER: $ RDIR`pwd | sed s / $ {LDIR} // `/` echo $ 1 | sed ‘s /.*///’ `

ialah parameter yang anda akan hantar ke skrip untuk nama fail yang anda cuba muat naik. $SSHSERVER dan $RDIR ialah pembolehubah yang akan kami tetapkan pada permulaan skrip untuk menetapkan pengguna@nama hos dan laluan jauh sebelumnya.

Blok pertama yang bermula dengan pwd|sed mengambil laluan direktori semasa dan menanggalkan bahagian sebelumnya laluan yang tidak sepadan dengan pelayan jauh, tetapi meninggalkan laluan yang lain. Sebagai contoh, jika anda berada dalam /var/www/wp-content/ semasa anda menjalankan arahan, blok sed akan menanggalkan /var/www berdasarkan pembolehubah LDIR kami, tetapi biarkan bahagian /wp-content/ daripadanya .

Blok kedua hanya memastikan untuk menanggalkan keseluruhan laluan sebelumnya dari nama fail yang dihantar ke skrip supaya anda hanya mendapat nama fail.

Sebagai contoh, jika anda menamakan skrip up.sh dan menjalankannya daripada direktori /var/www/wp-content/plugins/ setempat anda pada fail:

up.sh myplugin.php

Iklan

Ini akan diperluaskan oleh shell seperti berikut:

scp myplugin.php thegeek@hostname.com:/var/www/howtogeek/docs/wp-content/plugins/myplugin.php

Daripada cuba mencipta fail skrip anda sendiri berdasarkan artikel, saya telah menyediakannya untuk anda muat turun. Dengan cara itu tidak akan ada apa-apa isu dengan aksara khas tidak berfungsi… dan ya, saya menggunakan skrip untuk memuat naik sendiri =)

Muat turun geek-uploader.sh

Hanya letakkannya di suatu tempat di laluan anda, dan namakannya apa sahaja yang anda mahu. Saya menamakan semula nama saya kepada hanya naik, jadi saya boleh menaip nama fail.txt untuk dimuat naik. Juga ingat untuk membukanya dan menukar pembolehubah pada permulaan skrip agar sepadan dengan persekitaran anda.

Skrip ini harus berfungsi pada apa-apa sahaja dengan *nix shell dan utiliti scp. Saya menggunakan Ubuntu, tetapi ia sepatutnya berfungsi pada Solaris, OS X, atau Windows dengan Cygwin dipasang.

BACA SETERUSNYA
  • › How-To Geek: Kajian Tahun Pertama
  • › Cara Mencari Spotify Anda Dibungkus 2021
  • & rsaquo; Cyber ​​Monday 2021: Tawaran Teknologi Terbaik
  • › 5 Laman Web Setiap Pengguna Linux Perlu Penanda Halaman
  • › Apakah itu MIL-SPEC Drop Protection?
  • › Fungsi vs. Formula dalam Microsoft Excel: Apakah Perbezaannya?
  • › Folder Komputer Berusia 40: Bagaimana Bintang Xerox Mencipta Desktop
Foto Profil untuk Lowell Heddings Lowell Heddings
Lowell ialah pengasas dan Ketua Pegawai Eksekutif How-To Geek. Dia telah menjalankan rancangan itu sejak mencipta tapak itu pada tahun 2006. Sepanjang dekad yang lalu, Lowell secara peribadi telah menulis lebih daripada 1000 artikel yang telah dilihat oleh lebih 250 juta orang. Sebelum memulakan How-To Geek, Lowell menghabiskan 15 tahun bekerja dalam IT melakukan perundingan, keselamatan siber, pengurusan pangkalan data dan kerja pengaturcaraan.
Baca Bio Penuh

Artikel Yang Menarik