Komut satırından FTP veya SSH ile bir dosya nasıl yüklenir?


30

Bunu daha önce hiç yapmadım ve benim için bunu yapmak için bir bash shell betiği oluşturuyorum. Ayrıca bazı şeyleri yapmak için ssh ile bağlantı kuracağım (ki zaten nasıl yapacağımı biliyorum). Yani belki ssh ile dosya yüklemek için bir yol var, böylece hepsini tek bir bağlantıda yapabilirim?

Bunu nasıl yapabilirim?

#!/bin/sh

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

Bu, bu soruyu cevaplamıyor, ancak belki de bu bazı insanlara yardımcı olabilir: curl.io , bash yoluyla bir kamuya açık http sunucusuna bir dosya yüklemenize izin verir (bence birkaç saat geçerlidir)
Vincent Fenet

Yanıtlar:


56

scpUzaktaki bir makineye kopyalamak için kullanabilirsiniz .

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

şifre de bununla birlikte geçebilir mi? Ayrıca, bu bir ssh oturumu başlatır mı? Başka komutları da çalıştırabilir miyim?
Andrew,

2
Hayır, şifreyi geçemezsiniz. Ancak ssh anahtar doğrulamasını ayarlayabilirsiniz. Bu, bir parola ile değil, bir dosyada saklanan ve otomatik olarak bağlantıda iletilen bir anahtar aracılığıyla kimlik doğrulaması yaptığınız anlamına gelir. Ve bir daha hayır, bununla başka komutları da çalıştıramazsın.
Felix,

Yani, ssh ile bağlanabilir, sonra scp çalıştırabilir misin? Yoksa ayrı komutlar mı?
Andrew,

2
sshve scpfarklı komutlar. Bir giriş bkz İçin ssh.com/support/documentation/online/ssh/adminguide/32/...
Tangens

1
@Felix, ssh anahtar kimlik doğrulaması ayarlanmamışsa, bir parola girmeniz gerektiğini belirtmiş olmalıydı . Bu, bu düzeneğin sahip olması, bu komutu kullanmak için kritik bir gereklilik olmadığı anlamına gelir
aexl

6

Muhtemelen SCP veya benzeri bir şey arıyorsun.

#!/bin/bash

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

Tabii ki bu sizin beğeninize tweaked olmalı.Gerçek bilgileriniz ile user @ host yerine. Yüklenecek bir şifre girmeniz istenecek.


4

Gerçekten ssh kullanmanız gerekiyorsa (scp yerine) şunları yapabilirsiniz:

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

ancak düzenli scp ( tangens önerisi gibi ) en iyisidir.


Im im filezilla veya WinSCP kullanarak, uzaktan yerel dosya aktarmak veya kopyalamak için nasıl söyler misiniz, bir FTP bağlantısı kullanarak ... ben bir zip ayıklamak gerekir veya kopya yerel uzak
Sushivam

1

scp, SSH üzerinden şifreleneceğinden daha iyi bir cevaptır.

Ancak, standart ftp üzerinden yapmak istiyorsanız, ncftpput'a bakın. Bir dosyayı yüklemek için özel olarak tasarlanmıştır:

ADI ncftpput - scriptler için internet dosya transfer programı

SYNOPSIS ncftpput [seçenekler] uzak ana bilgisayar uzak dizin yerel dosyaları ...



0

Eğer kullandığınız zaman scp(güvenli kopyası) o müşteriye bağlayan komuta ve zaten ev sahibi cihaz için kaydedilmiş bir parmak izi yoksa o konak şifre soracaktır, aksi takdirde otomatik inanıyorum ana bilgisayara bağlanması gerekir.


0

Ec2 örneği için .pemdosyayı da iletmeniz gerekir ,

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.