Linux ile Windows Makinaları Uyutmak... zzz zzz zz ZZZ
Elektrik kesilmesi, tasarruf, iş çıkışı vb. gibi bazı sebeplerle
linux ana makinamızdan çevredeki windows makinaları kapatmak isteyebiliriz.
Ben örneğin bu yöntemi iletişim donanımı olmayan KGK'lara (Kesintisiz Güç Kaynağı)
bağlı windows makinaları elektrik kesildiğinde uykuya yatırmak için kullanıyorum.
Bu işi yapabilmemizi sağlayabilecek çeşitli araçlar var. Kolaylık, basitlik ve
değişiklik ilkeleri gereği rdesktop ve psshutdown programlarını
birlikte kullanabiliriz. Rdesktop'u http://www.rdesktop.org/ adresinden çekip
derleyebilir / kurabilir, psshutdown'ı ise http://www.sysinternals.com/Utilities/PsShutdown.html
adresinden edinilebilirsiniz. psshutdown.exe'yi kapatılacak bilgisayarların windows
klasörüne (veya PATH'inde bir yerlere) koyuyoruz.
Uykuya yatırma (hibernation) ise şöyle yapılıyor:
rdesktop -s "psshutdown -h" -u Kullanıcı -p Şifre 10.1.2.3
Burada '10.1.2.3' yerine uyutulacak windows makinanın
IP'si giriliyor, 'Kullanıcı' ise windows XP/2003'deki login olmamış yetkili bir kullanıcı olmalı.
Tabii windowslarda remote desktop servisi var olmalı, açık olmalı ve güvenlik duvarınca
engellenmemiş olmalı.
Elektrik kesildikten belli bir süre sonra, yani akülerin dayanma süresinden daha
kısa bir süre sonra bu komutu Linux makinamıza işlettirmeliyiz. Bunu nut ile
yapabilirsiniz, ama ben alışkanlık sebebiyle upsilon yazılımını kullanıyorum.
Bunda akü azalınca otomatik bir script çalıştırma özelliği yok ama olsun. Ara ara
aküyü yoklar, elektrik kesikse ve akü voltajı tehlikeli bir seviyeye inmeye başlamışsa
komutu çalıştırırız.
Upsilon, akü durumunu /etc/upsilon/upsilon.q1 dosyasında tutuyor.
Bu dosya tek bir satırdan oluşuyor ve satır sonu, unix standardı olan LF (0A) ile değil
CR simgesi ile (0D) bitiyor. Bizim bu veri satırından 1. ve 6. sayılara
gereksinimimiz olacak. Birincisi giriş voltajını verirken altıncısı da
akü voltajını gösteriyor. Amacımız giriş sıfır ise akü voltajı 24V gibi bir değere
düştüğünde komutu çalıştırmak. Bendeki linux ana makinaya bağlı KGK'nın aküsü
doluyken 28.3V gösteriyor mesela.
Hemen satırı kesip biçip işleyelim:
#!/bin/bash
#
# Sürüm: 0.1
# ilkerf(AT)geocities.com
#
giris=`cat /etc/upsilon/upsilon.q1|cut -b2-|cut -f1 -d\ |cut -f1 -d\.`
aku=`cat /etc/upsilon/upsilon.q1|cut -f6 -d\ |cut -f1 -d\.`
if [ "$giris" = "000" ];then
if [ "$aku" -le "24" ];then
rdesktop -s "psshutdown -h" -u Kullanıcı -p Şifre 10.1.2.3
fi
fi
Evet bu yukarıdakileri bir metin dosyası olarak kaydedip,
çalıştırılabilir hale getirdikten sonra uygun bir yere yerleştirelim.
Daha önce unix kabuk betiği (shell script) yazmamışlara not: ilk satırda
hangi kabuğun çalıştırılacağını (#!/bin/bash) belirtiyoruz. Ters bölü (\)
işaretinden sonraki boşluğu da unutmuyoruz. Ayrıca yukarıda kullanılan
tek tırnaklar da ters yöne bakan tek tırnaklardan. Dosyayı herkesçe çalıştırılabilir
yapmak için chmod u=rwx,go=rx DOSYA veya chmod 755 DOSYA ama içinde
şifre bulunduğundan sadece root tarafından okunup yazılıp çalıştırılsın diye
chmod u=rwx,go= DOSYA ya da chmod 700 DOSYA demek yeterli. Kullanıcının root olduğunu da
garantileyelim: chown root.root DOSYA . Bu dosyayı /usr/local/bin gibi
makul bir yere koyduktan sonra da 20 dakikada bir yoklanacak şekilde crontab
girdimizi oluşturalım. Aşağıdakini crontab -e dedikten sonra açılan yere
ekleyelim:
0-59/20 * * * * /usr/local/bin/DOSYA
Yapacaklarımız bu kadar. Deneme için kesintisiz güç kaynağınızın fişini çekip
/usr/local/bin/DOSYA'yı elle çalıştırabilir veya 20 dakika kadar bekleyip
crontab'ın işini yapmasını izleyebilirsiniz.
Bu yöntemi geliştirip başka alanlara da uygulamak size kalmış.
Örneğin belli saatlerde windowslarda virüs ya da casus program taraması başlatabilir,
elektrik geri geldiğinde wake-on-lan ile bilgisayarları tekrar açabilir, veya
gecenin dördünde makinaları açıp defrag yaptırıp tekrar kapayabilir, vs. vs.
benzer işleri yaptırabilirsiniz. Yukarıda anlatılanlar umarım yapılabileceklere
dair bir fikir vererek örnek olabilmiştir.
Mayıs 2006
ilker Fıçıcılar
http://teknik.ekitap.gen.tr/index.php?sayfa=linux_ile_windowslari_uyutmak.html
Not: Buradaki yazılar izin alınmaksızın kopyalanabilir. Ama yazara ve alıntının yapıldığı adrese referans vermek tamamıyla alıntıyı yapanın ahlakına bırakılmıştır...
--
Arama önerileri:
ups,
kgk,
batarya,
linux,
windows,
acpi,
apm,
tunçmatik,
enel,
apc,
Kaynak gösterecekler için referans:
"Linux ile Windows Makinaları Uyutmak",
İlker Fıçıcılar,
http://www.KlavyeMonitor.com/linux_ile_windowslari_uyutmak.html
İlgili Benzer Yazılar:
|