Ana içeriğe atla

Linux Shell'de Uzak Sunucuya Dosya Kopyalama


Linux'un en büyük özelliklerinden biri "shell" (kabuk) olarak adlandırılan komut satirinin çok güçlü olmasıdır. Ihtiyaciniz olan birçok seyi baska yazılıma gerek kalmadan shell uzerinden yapabilirsiniz. Bunlardan biri de SSH ile bağlanma imkanınız olan uzak bir bilgisayara güvenli olarak dosya kopyalayabilmektir. Bu yazıda bunun icin gerekli shell script'i yazacağım.

Asagidaki Linux shell script, tanımlı uzak sunucuya SSH uzerinden bağlanarak yerel dizindeki tum dosyalari uzak sunucudaki tanımlı dizine kopyalar. Bunun icin iki komut kullanabiliriz. Ilki yaygın kullanılan "scp" komutu ve ikincisi daha yeni ve akilli bir komut olan "rsync".

scp komutu dizindeki tum dosyalari sorgusuz kopyalar. rsync komutu ilk kopyalamada tum dosyalari kopyalarken sonrasında daha akıllıca davranarak sadece son kopyalamadan sonra değişen dosyalari kopyalar. Dolayisiyla sisteminiz rsync komutunu destekliyorsa bu komutu kullanmak daha pratik ve mantıklı.

scp ile tum klasörü degil de sadece tek dosya kopyalamak icin klasör adlarina dosya adini da ekleyin ve "-r" secenegini kaldırın.

Siz scriptte sunucu ve kullanıcı adi ve ilgili yerel ve uzak klasörleri değiştirerek istediğiniz gibi deneme yapabilirsiniz.


#!/usr/bin/env bash
#Script to copy files from local to remote host.
local_dir="/home/uno/test1/"  #Yerel Dizin
remote_dir="/home/dos/test2"  #Uzak makinadaki dizin
remote_host="192.168.10.228"  #Uzak makina adresi
remote_user="dos"  #Uzak makina kullanıcı adi

echo "Files will be copied from local folder to remote host."
echo "Local Folder: ${local_dir}"
echo "Remote Folder: ${remote_dir}"
echo "Remote Host: ${remote_host}"

# rsync: Gerekirse Kopyala
rsync -av  "${local_dir}" "${remote_user}"@"${remote_host}":"${remote_dir}" 
# scp: Her turlu Kopyala
#scp -r "${local_dir}" "${remote_user}"@"${remote_host}":"${remote_dir}" 
echo "Done."


Kodu kopyalayıp .sh uzantılı bir dosyaya kaydederek veya dogrudan shell'e yapistirarak kullanabilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

Python: Baska Dosyadan Fonksiyon "import" Etme

Yazılım yaparken calistigimiz dosyada baska dosyada tanımlı fonksiyonlari kullanmak icin o dosyadaki fonsiyonlari bir sekilde mevcut dosyaya tanıtmamız gerekir. Bircok yazılım dilinde olduğu gibi Python'da da bunun icin kullanılan anahtar kelime import 'tur. Python kütüphanelerindeki fonksiyonlari dogrudan import edebilirken kendi yazdigimiz farklı dosyalardaki fonsiyonlari import etmek icin biraz daha dikkatli olmamız gerekir. Eğer calistigimiz dosya ile ilgili fonksiyonu içeren diger dosya ayni dizinde ise dosya ismi ve fonksiyon ismini kullanarak import'u kullanabiliriz. Ornek : dosya1.py ve dosya2.py ayni dizinde olsun. dosya1.py icinde fonksiyon1 tanımı olsun. Bunu ayni dizindeki dosya2.py icinde kullanmak icin su sekilde import ederiz: from dosya1 import fonksiyon1 Eger dosyaların dizinleri farklı ise, dizini pyhton'a tanıtmamız gerekir. Bunun icin ilgili dizinde boş __init__.py isimli dosya oluşturmak yeterlidir. Evet bu kadar basit. __i

python: Resim Dosyası Okuma ve Yeniden Boyutlandirma (Resize)

python ile resim dosyalarını okumak ve yeniden boyutlandirmak(resize) oldukça kolay. Asagidaki kod parçası, PIL paketini kullanarak verilen resim dosyasını okuyup resim yüksekliği 480 piksel olacak sekilde yeniden boyutlandiriyor. Resmin orijinal en/boy oranı (aspect ratio) korunuyor. Yani yüksekliği 480 olacak sekilde eni orantılı olarak boyutlandiriliyor. Ilgili degerleri (hedef_yukseklik ve dosya adi) değiştirerek resimleri istediğiniz boyutta olacak sekilde boyutlandirabilirsiniz. import PIL from PIL import Image hedef_yukseklik = 480 resim_dosya_adi = "test.jpg" print "Dosya okunuyor... " resim = Image . open ( resim_dosya_adi ) print "Orijinal Resim Boyutu: " , resim . size # Hedef yukseklige orantili olarak hedef genisligi hesapla yeniboyut_orani = ( hedef_yukseklik / float ( resim . size [ 1 ])) hedef_genislik = int (( float ( resim . size [ 0 ])* float ( yeniboyut_orani ))) #Yeniden Boyutlandir resim = resim . resize (( hedef_geni

Linux Shell: Bir dosyanın varlığını kontrol etme

Genel olarak herhangi bir yazılım yaparken olduğu gibi, Linux Shell'de de komut yazarken veya yeni bir script dosyası oluşturuken bir dosyanın var olup olmadığını kontrol etmemiz gereken durumlar sıkça karşımıza çıkar. Hele de bazı işlemleri otomatikleştirmeye çalışıyorsak bu kontroller çok önemli hale gelir. Linux Shell'de aşağıdaki kod örneği ile bir dosyanın varlığını kolayca kontrol edebiliriz. if [ -f test.txt ]   # Dosya var mı?  then      echo "Dosya var."   # Var ise bu satırı yazdır. else      echo "Dosya yok!"  # Yoksa bu satırı yazdır. fi   Temel yapı bu kadar basit. Dosya adını bir değişkenden okumak istersek şu şekilde küçük bir değişiklik yapmamız gerekir. dosya_adi="test.txt" if [ -f $dosya_adi ]   # Dosya var mı?  then      echo "Dosya var."   # Var ise bu satırı yazdır. else      echo "Dosya yok!"  # Yoksa bu satırı yazdır. fi   Burada yazımda dikkat etmemiz gereken noktalardan biri &quo