Python ile Ubuntu'da hızlı dosya paylaşımı

Ubuntu Türkiye Wiki sitesinden
Gezinti kısmına atla Arama kısmına atla

Sistemde Samba'nın kurulu olmadığı bazı durumlarda dosya / dizin paylaşım işlemine ihtiyaç duyulabilir. Sistemde Python kurulu ise bu işlemi kolayca yapabiliriz.

1. Python ile dosya paylaşımı

İlk olarak "Ctrl+Alt+T" tuşları yardımıyla uçbirim açılır daha sonra hangi klasör paylaştırılmak isteniliyorsa o klasöre girilir. Örneğin ev dizinimizi paylaştırmak isteyelim;

cd /home/kullanici_adiniz

Dizine girdikten sonra aşağıdaki komut yardımıyla sunucu başlatılır.

python -m SimpleHTTPServer

Bu komut çalıştırıldıktan sonra içinde bulunulan dizindeki dosyalar 8000 numaralı bağlantı noktasından (port) paylaşıma açılır. Başka bilgisayardan erişim için herhangi bir web gezgini ile http://bilgisayarin_ip_adresi:8000 veya kendi bilgisayarınızdan erişim için http://127.0.0.1:8000 yazılarak dosyalara erişilebilir.

2. Dosya paylaşımı sırasında oluşan Türkçe karakter problemini çözme

Komut Python'da bu şekilde çalıştırıldığında Türkçe karakter problemi oluşacaktır. Bu problemi çözmek için;

sudo gedit /usr/lib/python2.6/SimpleHTTPServer.py

yazılarak ilgili dosya açılır, dosyanın 134. satırı aşağıdaki şekilde değiştirilir ve sunucu yeniden başlatılır.

self.send_header("Content-type", "text/html; charset=UTF-8")

3. Komutu kolay kullanmak için .bashrc dosyasına kayıt ekleme

Bu komutu akılda tutmak zor olabilir, bu sebeple .bashrc dosyanıza http gibi bir takma ad (alias) ekleyip işinizi kolaylaştırabilirsiniz. Bunun için ilk olarak .bashrc dosyamızı açalım. Dosyayı açmak için uçbirimden aşağıdaki komutu yazalım;

gedit ~/.bashrc

Daha sonra aşağıdaki kodu dosyanın en sonuna ekleyip, dosyayı kaydedip kapatıyoruz.

alias http="python -m SimpleHTTPServer"

Son olarak bilgisayarımızı yeniden başlatmadan takma adımızı aktif hale getirmek için aşağıdaki komutu uçbirimden giriyoruz.

source ~/.bashrc

4. Komutu Nautilus'a betik olarak ekleme

Betiğimizi pythonSunucu adıyla kaydedeceğimizi düşünelim. Bunun için Gedit metin düzenleyici yazılımını uçbirimden aşağıdaki komut ile çalıştıralım.

gedit ~/.gnome2/nautilus-scripts/pythonSunucu

Gedit içine aşağıdaki kodlar yapıştırılır ve kaydedin.

#!/bin/sh

base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`"

if [ -z "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
     dir="$base"
else
     while [ ! -z "$1" -a ! -d "$base/$1" ]; do shift; done
     dir="$base/$1"
fi

cd "$dir"
gnome-terminal -x python -m SimpleHTTPServer

Betiğimizi kullanmak için, nautilus ile paylaşmak istediğiniz dizin içerisine girip, sağ tuşa basıp, "Scripts>pythonSunucu" seçmeniz yeterli olacaktır.