29 Şubat 2008
OOXML'e hayır...
28 Şubat 2008
ssh bağlantısını garantiye almak
Bağlanacağımız PC/server yan taraftaki sistem odasında da olsa, Güney
Afrika'da da olsa açıyoruz ssh ile bir oturum, işimizi yapıp çıkıyoruz.
Uzaktaki makinalara Linux'un 10 kaplan gücündeki konsolu ile
yaptıramayacağımız iş yok "gibi". "Gibi" diyorum çünkü ender de olsa
bazen fiziksel olarak makinanın başında olmamız gerekiyor. Özellikle ağ
ayarları ile uğraşıyorsak. Yanlış bir komut her şeyi mahvedebilir. Dün
akşam böyle hassas bir konu ile uğraşırken ağ ayarlarımı kaybetme
korkusuyla komutları elim titreyerek girdim. Uzak bilgisayardaki
/etc/network/interfaces dosyasını mıncıklarken, route komutu ile
boğuşurken hattı kopartmamak için ayrı bir dikkat harcadım.
Firewall+proxy olarak çalışan makinaya ayrı bir frame relay bağlantısı
yapmak zaten yeterince boğucuydu. Sonra özgürlüğümü geri almak için
şöyle yaptım: Çalışan ve uzaktan bağlanılabilen ayarları geri yükleyecek
bir script yaptım. Bunu da yer yer saat başı, duruma göre aklıma
geldikçe 30-40 dk. ileriye alarak crontab'a attım. Böylece eğer bir
yanlışlık olursa en fazla 40-45dk. içinde tekrar bağlanabilmeyi
garantiye almış oldum. Hem arada bir çay molası vermek için de bahanem
olurdu. Hakikaten işe yaradığını da söylemeliyim çünkü aldığım gazla bir
sefer bağlantıyı kopardım. Panik yapmadan saatime baktım, bekledim ve
zamanı geldiğinde bağlanıp işe devam ettim. İşi garantiye almak güzel de
script'in arada fark etmeden cron'dan çalışması ve yaptığım ayarları
bozması ve benim bunu geç anlamam işin cilvesi ne yazık ki... ;)
01 Şubat 2008
stix.to : Faydalı bir eser
03 Aralık 2007
swatch logrotate'den sonra log dosyasını izlemezse...
swatch'ın start, restart, stop edilebilmesi için bir script yazmak gerekiyordu. Kolları sıvayıp önce şöyle bir script yazdım (/etc/init.d/swatchd dosyasına) :
| #!/bin/sh # Debian Gnu/Linux Shell Script # # swatchd : swatch'in baslatilmasi, durdurulmasi veya tekrar baslatilmasi # icin script. # # Aciklama: logrotate'den sonra swatch log dosyalarini dinlemediginden, # logrotate'den sonra swatch'in restart edilmesi gerekiyor. # /etc/cron.daily/sysklogd, /etc/cron.weekly/sysklogd dosyalarinin sonuna # /etc/init.d/swatch restart > /dev/null satiri eklenirse, sysklogd restart olduktan hemen sonra # swatch da restart olacaktir. # # Version: 1.0 03-12-2007 aytekinaygun@gmail.com ps ax | grep swatch > /tmp/swatch.pid PID=`cat /tmp/swatch.pid | grep swatchrc | awk '{print $1;}'` case "$1" in start|"") if [ "$PID" = "" ]; then swatch --daemon -c /etc/swatchrc --tail-file="/var/log/syslog /var/log/auth.log" echo "swatch baslatildi..." else echo "swatch zaten calisiyor..." fi ;; stop) if [ "$PID" = "" ]; then echo "swatch zaten calismiyor..." else kill -9 $PID echo "swatch durduruldu..." fi ;; restart) if [ "$PID" = "" ]; then swatch --daemon -c /etc/swatchrc --tail-file="/var/log/syslog /var/log/auth.log" echo "swatch calismiyordu ve baslatildi..." else kill -9 $PID swatch --daemon -c /etc/swatchrc --tail-file="/var/log/syslog /var/log/auth.log" echo "swatch tekrar baslatildi..." fi ;; *) echo "Kullanim parametreleri : /etc/init.d/swatchd {start|stop|restart}" ;; esac exit 0 |
Sonra da /etc/cron.daily/sysklogd, /etc/cron.weekly/sysklogd dosyalarinin sonuna;
| /etc/init.d/swatch restart > /dev/null |
satırını ekledim. Böylece gece sysklogd restart olduktan hemen sonra swatch'da restart oluyor ve istediğim log dosyalarının izlenmesine devam ediliyor.
15 Kasım 2007
Thunderbird konu başlığına göre dizilim yapmasın
# Only thread by reference headers, ignore subject user_pref("mail.strict_threading", true);
ve kayıt ettim... Thunderbird'ü tekrar çalıştırdığımda kabuslarım sona erdi.
16 Ekim 2007
Disklerin dolduğunu haber veren script
Henüz denemeler yapıp yazılımı test ediyorum. Bu denemelerimde disk dolduğu zaman bana e-posta atmasını sağlayamadım. Fazla da uğraşmadım ve kendi işimi kendim görmeye karar verdim. Hemen şöyle bir script yazdım:
| #!/bin/sh if df -h | egrep "90%|91%|92%|93%|94%|95%|96%|97%|98%|99%|100%" then df -h > disk.txt echo " " >> disk.txt echo " " >> disk.txt du -sh /var/* >> disk.txt mail -s "[Proxy-Hastane] Disk Doluyor!" tirtil@zabazingo.com < disk.txt rm disk.txt fi |
Görüldüğü gibi basit bir 'eğer' kalıbı ile işimi hallettim.
Önce disk bölümlerinin doluluk oranına bakıp bu çıktıda %90 ve üzeri bir ifade var mı ona bakıyoruz. Eğer bu ifade var ise disk bölümlerinin doluluk oranlarının bilgisi ile /var dizininde bulunan dosya ve dizinlerin boyutlarını disk.txt dosyasına yazıp, bu dosyayı e-posta ile gönderiyoruz. Hepsi bu...
Bu scripti crontab'a ekleyip günde bir kez çalıştırmak yeter sanırım.
15 Ekim 2007
Konsoldan e-posta göndermek
Kurduğumuz sistemlerde neler olup bittiğini izlemek için yada belirli aralıklarla yaptırdığımız bir işin (örneğin yedekleme) sağlıklı bir şekilde yapıldığından emin olmak için birtakım çıktıları e-posta ile takip ederiz. Konsoldan e-posta atmak için;
# mail kullanıcı@alanadı.com -s "Konu Başlığı" < /var/log/dosya.log
komutunu kullanmak yeterlidir. Bu komut ile dosya.log dosyası kullanıcı@alanadı.com'a gönderilir. Fakat bu komutu kullanmak için önce bir MTA ayarı yapmak gerekir. Ben Debian'da ön tanımlı olarak gelen exim4'ü kullanıyorum. Eğer kurulu değil ise:
| # apt-get install exim4 |
ile kurulumu yapıyoruz. Kullandığım gmail hesabım için ayarları şöyle yapıyorum:
| # dpkg-reconfigure exim4-config |
Yapılandırmayı küçük dosyalara bölmek ister misiniz? hayır Posta yapılandırma türü? Posta gönderme akıllı-makine ile; posta alma SMTP/fetchmail ile Sistemin posta adı? localhost.localdomain |
Ayarları kayıt ediyoruz. Yapılan bu ayarlar /etc/exim4/update-exim4.conf.conf dosyasına yazılır. Bu dosyanın içeriği şöyle birşey oluyor.
| # nano /etc/exim4/update-exim4.conf.conf |
| dc_eximconfig_configtype='smarthost' dc_other_hostnames='localhost.localdomain' dc_local_interfaces='127.0.0.1' dc_readhost='debian' dc_relay_domains='' dc_minimaldns='false' dc_relay_nets='' dc_smarthost='smtp.gmail.com::587' CFILEMODE='644' dc_use_split_config='false' dc_hide_mailname='false' dc_mailname_in_oh='true' dc_localdelivery='mail_spool' |
aytekin kullanıcısının gönderdiği postalarda zabazingo@gmail.com adresinin görünmesini istiyorum. Bunun için /etc/email-addresses dosyası şöyle düzenliyoruz.
| # nano /etc/email-addresses |
| aytekin: zabazingo@gmail.com |
Son olarak kullanıdğımız e-posta adresinin kullanıcı ve şifre bilgilerini girmemiz gerekiyor.
| # nano /etc/exim4/passwd.client |
| *:zabazingo:şifre |
Ayarlar tamamlandı. Şimdi de exim4'ü yeniden başlatıyoruz.
| # /etc/init.d/exim4 restart |
08 Ekim 2007
Dinamik IP'ye hostname atama (dyndns.org güzelliği)
Belli aralıklarla IP'yi güncellemek için ubunturehberi.com'da anlatılanları uyguladım. Komut satırından komutu verdiğimde herşey normal ama cron'dan komut çalışmıyor. Betik path'de olmadığı için sorun oluyor. Bende şöyle yaptım. dyndns_update.sh betiğini /usr/sbin/'in altına taşıdım. Betik içinde de değişiklik yapmak gerekiyor. ipcheck komutu olan satırlarda da /usr/sbin/ipcheck .... şeklinde yol tanımladım. Sonuç olarak betiğin son hali şöyle:
#!/bin/sh
USERNAME=kullanıcı
PASSWORD=şifre
HOSTNAME=xxxxxx.dyndns.org
cd /root/
if [ -f /root/ipcheck.dat ]; then
/usr/sbin/ipcheck -r checkip.dyndns.org:8245 $USERNAME $PASSWORD $HOSTNAME
else
/usr/sbin/ipcheck --makedat -r checkip.dyndns.org:8245 $USERNAME $PASSWORD $HOSTNAME
fi
crontab'a da şöyle ekliyoruz:
# crontab -eher saat başı çalışması için eklenecek satır:
00 * * * * /usr/sbin/dyndns_update.sh
05 Ekim 2007
/home'u ayrı bölüme/diskte taşımak
Şöyleki:
Önce dizin oluşturup 2.diski buraya bağlıyoruz.
# mkdir /yenihome
# mount -t ext3 /dev/sdb1 /yenihome
/home 'da bulunan tüm dosyaları /yenihome 'a taşıyoruz.
# cd /home
# find . -depth -print0 | cpio --null --sparse -pvd /yenihome/
/home'un yerini değiştiriyoruz.
# umount /yenihome
# mv /home /eskihome
# mv /yenihome /home
...ve bağlıyoruz.
# mount -t ext3 /dev/sdb1 /home
Tabi bu bağlama işini fstab'a da ekliyoruz:
/dev/sdb1 /home ext3 usrquota,grpquota 1 1
Kaynak : http://eventualis.org/home-dizinini-tasimak/
Artık yazmam lazım gelir...
yazılardan sonra kaldı öyle. Sildim o yazılarıda zaten. Şimdi tekrar
bişiler karalayım dedim Linux hakkında. Tırmalayıp duruyorum akşama
kadar şu ekranın önünde. Deneyimlerimi paylaşayım dedim bende işte. Öle
işte be ...