Bagaimana cara mengunggah file dari baris perintah dengan FTP atau SSH?


30

Saya belum pernah melakukan ini sebelumnya dan saya membuat skrip bash shell untuk melakukan ini untuk saya. Saya juga akan terhubung melalui ssh untuk melakukan beberapa hal (yang saya sudah tahu caranya). Jadi mungkin ada cara untuk mengunggah file melalui ssh sehingga saya bisa melakukan semuanya dalam satu koneksi?

Bagaimana saya bisa melakukan ini?

#!/bin/sh

cd ./files-to-upload
#upload the files

Itu tidak menjawab pertanyaan ini, tapi mungkin ini bisa membantu beberapa orang: curl.io memungkinkan Anda untuk mengunggah file melalui bash ke hosting http publik (kurasa beberapa jam kurasa)
Vincent Fenet

Jawaban:


56

Anda dapat menggunakannya scpuntuk menyalin ke mesin jarak jauh.

scp <file to upload> <username>@<hostname>:<destination path>

dapatkah kata sandi diteruskan dengan ini juga? Juga, apakah ini menginisialisasi sesi ssh? Bisakah saya menjalankan perintah lain juga?
Andrew

2
Tidak, Anda tidak dapat memasukkan kata sandi. Tetapi Anda dapat mengatur otentikasi kunci ssh. Itu berarti Anda tidak mengotentikasi melalui kata sandi tetapi melalui kunci yang disimpan dalam file dan secara otomatis dikirimkan pada koneksi. Dan tidak lagi, Anda tidak dapat menjalankan perintah lain dengan ini.
Felix

maksud saya dapat Anda terhubung dengan ssh, kemudian jalankan scp? Atau apakah itu perintah yang terpisah?
Andrew

2
sshdan scpberbagai perintah. Untuk pengantar, lihat ssh.com/support/documentation/online/ssh/adminguide/32/…
tangens

1
@Felix seharusnya menunjukkan bahwa jika Anda tidak mengatur otentikasi kunci ssh, Anda akan diminta untuk memasukkan kata sandi . Itu berarti, memiliki pengaturan itu bukan persyaratan penting untuk menggunakan perintah ini
aexl

6

Anda mungkin mencari SCP atau yang serupa.

#!/bin/bash

cd ./files-to-upload
scp * user@host:/path/to/upload/files/to

tentu saja ini harus disesuaikan dengan keinginan Anda. Ganti user @ host dengan informasi Anda yang sebenarnya. Anda akan dimintai kata sandi untuk diunggah.


4

Jika Anda benar-benar harus menggunakan ssh (bukan scp) yang dapat Anda lakukan:

for filename in *; do
  cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename"
done

tapi scp reguler (seperti saran tangens ) adalah yang terbaik.


Saya menggunakan koneksi FTp, dapatkah Anda memberi tahu cara mentransfer atau menyalin file dari lokal ke remote, saya menggunakan filezilla atau winscp ... saya perlu mengekstrak zip atau menyalin dari lokal ke remote
Sushivam

1

scp adalah jawaban yang lebih baik karena akan dienkripsi melalui SSH.

Namun, jika Anda ingin melakukannya di atas ftp standar, lihat ncftpput. Ini dirancang khusus untuk mengunggah file:

NAME ncftpput - Program transfer file Internet untuk skrip

SYNOPSIS ncftpput [opsi] remote-host remote-direktori-file lokal ...



0

Ketika Anda menggunakan perintah scp(copy aman) yang terhubung ke klien dan jika Anda belum memiliki sidik jari yang tersimpan untuk perangkat host, ia akan meminta kata sandi host Anda jika tidak maka akan terhubung secara otomatis ke host yang saya percaya.


0

Misalnya EC2, Anda harus melewati .pemfile juga,

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.