27 Mart 2020 Cuma

scp komutu - secure copy

Giriş
Açıklaması şöyle. scp yerine sftp komutu da kullanılabilir.
scp copies files between hosts on a network. It uses ssh(1) for data transfer, and uses the same authentication and provides the same security as ssh(1).
scp yerine ssh kullanmak istersek şöyle yaparız. Dosyayı stdout'a yazar. Onu da ssh okur ve cat komutuna verir.
gzip -c file.txt | ssh user@ip "cat > destfile.gz"
Örnek
Uzak bilgisayardaki belli uzantılara sahip dosyaları kendime kopyalamak için şöyle yaparız.
scp user@someRemoteHost.com:'/folder/*.{jpg,png}' .
-3 seçeneği
Açıklaması şöyle
-3 Copies between two remote hosts are transferred through the local host. Without this option the data is copied directly between the two remote hosts. [...]
Açıklaması şöyle
 Very recent versions of scp have -3 enabled by default since 9 August 2021, and to disable it one must now specify -R.
Elimizde 3 tane sunucu olsun. A, B, C. C sunucusuna herkesin erişimi olsun ancak A ve B birbirleriyle iletişim kuramıyor olsunlar. A'dan B'ye dosya kopyalamak için şöyle yaparız
scp -3p serverA:path/to/file(s) serverB:/path/to/destination
-J seçeneği
ssh ile bir sunucuya bağlanıp daha sonra sunucundan bir başka bilgisayara bağlanıp dosyayı kendi bilgisayarıma indirmek içindir. Yani ProxyJump için şöyle yaparız.
scp -J user@intermediate user@target:/path
-o seçeneği
ProxyJump
Açıklaması şöyle. Eğer -J seçeneğini destekleyemeyen daha eski bir sürüm kullanıyorsak.
ProxyJump
Specifies one or more jump proxies as either [user@]host[:port] or an ssh URI. Multiple proxies may be separated by comma characters and will be visited sequentially. Setting this option will cause ssh(1) to connect to the target host by first making a ssh(1) connection to the specified ProxyJump host and then establishing a TCP forwarding to the ultimate target from there.
Şöyle yaparız.
scp -o ProxyJump=user@intermediate user@target:/path
-P Seçeneği
Port numarasını belirtir. 
Örnek
Şöyle yaparız
scp -P 31107 adv@172.18.16.213:/var/tmp/AdvCollectedTraces.0000.tar .
-r seçeneği
Recursive anlamına gelir.
Örnek
Bulunduğum dizinin tamamını kopyalamak istersem şöyle yaparız
scp -r "${PWD}" ${remote}:${dst_path}
scp "." yani bulunduğum dizin karakterini anlamıyor. Bu yüzden PWD kullanılıyor. Şu komut hata veriyor. Çıktı olarak şunu verir. scp: error: unexpected filename: .
scp -r . host:new-name

Hiç yorum yok:

Yorum Gönder