- Konu sahibi
- #1
Linux sunucuda bir Python scripti çalıştırmak için SSH ile sunucuya bağlanın, scriptin bulunduğu dizine geçin ve
Sunucu anahtarını ilk bağlantıda doğrulamanız istenirse parmak izini sunucu yöneticisinden veya güvenilir yönetim panelinden aldığınız bilgiyle karşılaştırın. Ardından hesabınızın parola ya da SSH anahtarıyla kimlik doğrulamasını tamamlayın. SSH erişiminiz yoksa sağlayıcıdan veya sunucu yöneticisinden hesabınız için erişim isteyin.
Sunucu terminalinde Python'ı kontrol edin:
Bir sürüm görünüyorsa bunun scriptin istediği sürümle uyumlu olup olmadığını proje belgelerinden kontrol edin.
Buradaki dosya adını, kullanıcıyı ve adresi kendinize göre değiştirin. Sunucu terminaline dönüp dosyanın bulunduğu dizine geçin ve dosyayı çalıştırın:
Deneme için sunucuda
Dosyayı yukarıdaki komutla çalıştırdığınızda terminalde
Bu örnekte ortamı etkinleştirmek yerine doğrudan onun Python yorumlayıcısı kullanılır. Paket kurulumu hata verirse mesajdaki eksik bağımlılığı, ağ erişimini ve projenin Python sürümü gereksinimini kontrol edin.
Script terminal açıkken çalışır; uzun süren bir işi SSH bağlantısını kapattıktan sonra sürdürmek istiyorsanız, proje dizininde şu örneği kullanabilirsiniz:
Sanal ortam kullanmıyorsanız
nohup otomatik yeniden başlatma sağlamaz. Sunucu yeniden başladığında veya süreç hata nedeniyle durduğunda scriptin tekrar başlaması gerekiyorsa, sunucu yöneticisiyle uygun bir servis yapılandırın. Günlük hassas bilgi içerebilir; erişimini kısıtlayın ve geçici tanılama çıktılarını işiniz bitince kaldırın.
python3 script.py komutunu çalıştırın. Script ek paketler gerektiriyorsa önce bunları bir sanal ortama kurun. Komutun çıktısını ve varsa hata mesajını terminalde görürsünüz; scriptin tamamlanması gereken işi yapıp yapmadığını ayrıca kontrol etmelisiniz.Sunucuya bağlanın ve Python'ı kontrol edin
Sunucunun adresine, kullanıcı adına ve SSH erişimine ihtiyacınız var. Kendi bilgisayarınızın terminalinde, örnekteki değerleri gerçek bilgilerinizle değiştirerek bağlanın:
Kod:
ssh kullanici@sunucu_adresi
Sunucu anahtarını ilk bağlantıda doğrulamanız istenirse parmak izini sunucu yöneticisinden veya güvenilir yönetim panelinden aldığınız bilgiyle karşılaştırın. Ardından hesabınızın parola ya da SSH anahtarıyla kimlik doğrulamasını tamamlayın. SSH erişiminiz yoksa sağlayıcıdan veya sunucu yöneticisinden hesabınız için erişim isteyin.
Sunucu terminalinde Python'ı kontrol edin:
Kod:
python3 --version
Bir sürüm görünüyorsa bunun scriptin istediği sürümle uyumlu olup olmadığını proje belgelerinden kontrol edin.
command not found alırsanız Python 3 kurulu olmayabilir veya komut arama yolunda bulunmayabilir. Sunucuyu yönetiyorsanız dağıtımın paket yöneticisiyle kurun; yetkiniz yoksa yöneticiden uygun Python sürümünü isteyin.Dosyayı hazırlayın ve çalıştırın
Mevcut scriptinizi sunucudaki erişebildiğiniz bir dizine aktarın veya o dizinde oluşturun. Örneğin script kendi bilgisayarınızdaysa, aşağıdaki komutu kendi bilgisayarınızın terminalinde çalıştırarak sunucudaki kullanıcı dizinine gönderebilirsiniz:
Kod:
scp script.py kullanici@sunucu_adresi:~/script.py
Buradaki dosya adını, kullanıcıyı ve adresi kendinize göre değiştirin. Sunucu terminaline dönüp dosyanın bulunduğu dizine geçin ve dosyayı çalıştırın:
Kod:
cd ~
ls -l script.py
python3 script.py
ls dosyayı bulamazsa aktarımın hedefini ve dosya adını düzeltin. Python ile çalıştırırken dosyaya ayrıca çalıştırma izni vermek gerekmez; ancak hesabınızın dosyayı okuma ve scriptin kullandığı dizinlere gerekli erişim izinleri olmalıdır.Deneme için sunucuda
script.py adlı bir dosyaya aşağıdaki içeriği kaydedebilirsiniz:
Python:
print("Merhaba, sunucu!")
Dosyayı yukarıdaki komutla çalıştırdığınızda terminalde
Merhaba, sunucu! görünmesi bu örneğin çalıştığını gösterir. Kendi scriptiniz çıktı üretmeyebilir; terminalin sessiz kalması tek başına başarısızlık veya beklenen işlemin gerçekleştiği anlamına gelmez. Scriptin oluşturması gereken dosyayı, kaydı veya diğer sonucu ayrıca kontrol edin.Gerekli paketleri kurun
Scriptin yanında birrequirements.txt dosyası varsa ve proje bu dosyayı kullanıyorsa, scriptin bulunduğu dizinde sanal ortam oluşturun. Sanal ortam, proje paketlerini diğer Python ortamlarından ayrı tutar:
Kod:
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python script.py
Bu örnekte ortamı etkinleştirmek yerine doğrudan onun Python yorumlayıcısı kullanılır. Paket kurulumu hata verirse mesajdaki eksik bağımlılığı, ağ erişimini ve projenin Python sürümü gereksinimini kontrol edin.
venv oluşturulamıyorsa sunucuda gerekli Python bileşeni eksik olabilir; yöneticiye hata mesajını ve python3 --version çıktısını iletin. Tanımadığınız bir bağımlılık dosyasını incelemeden kurmayın.Hataları ve uzun çalışan scriptleri yönetin
ModuleNotFoundError alırsanız scripti paketlerin kurulduğu ortamın Python yorumlayıcısıyla başlattığınızdan emin olun. Permission denied mesajında hata verilen dosyanın veya dizinin yolunu ve hesabınızın erişim izinlerini kontrol edin. Hatanın son satırı ve ilgili dosya yolu genellikle başlangıç noktasıdır; yöneticiden yardım isterken bunları paylaşın, ancak parola, anahtar ve kişisel verileri önce çıkarın.Script terminal açıkken çalışır; uzun süren bir işi SSH bağlantısını kapattıktan sonra sürdürmek istiyorsanız, proje dizininde şu örneği kullanabilirsiniz:
Kod:
nohup .venv/bin/python -u script.py > script.log 2>&1 < /dev/null &
echo $!
Sanal ortam kullanmıyorsanız
.venv/bin/python yerine python3 yazın. Komut, çıktıyı script.log dosyasına yönlendirir ve işlem kimliğini gösterir. Çıktıyı tail -f script.log ile izleyebilir, izlemeyi Ctrl+C ile bitirebilirsiniz; bu, scripti durdurmaz. Kimliği kullanarak ps -p İŞLEM_KİMLİĞİ ile sürecin hâlâ var olup olmadığını kontrol edin. Sürecin varlığı işin başarılı olduğunu kanıtlamaz; günlükteki hataları ve beklenen sonucu da inceleyin.nohup otomatik yeniden başlatma sağlamaz. Sunucu yeniden başladığında veya süreç hata nedeniyle durduğunda scriptin tekrar başlaması gerekiyorsa, sunucu yöneticisiyle uygun bir servis yapılandırın. Günlük hassas bilgi içerebilir; erişimini kısıtlayın ve geçici tanılama çıktılarını işiniz bitince kaldırın.
Moderatör tarafında düzenlendi: