Mario

WFN Üye
Konular
668
Mesajlar
668
Çözüm
0
Ticaret Puanı
0
Üyelik
25 Gün
Konum
Zonguldak
Web Sitesi
Var
Alanı
Google Optimiz.
1/1
Konu sahibi
Linux sunucuda bir Python scripti çalıştırmak için SSH ile sunucuya bağlanın, scriptin bulunduğu dizine geçin ve 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 bir requirements.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:

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic