uygulanan etiketler: bash
pengeunpedi pengeunpedi pengeunpedi
  penguenyuvasi   pengulog   arşiv   bulut   rss

great expectations: expect

Saturday, July 7, 2007 4:52:00 AM tarihinde Fırat KÜÇÜK tarafından gönderildi.

GUI scriptin yani KGA tabanlı betik programlama bir çok konu da derde deva. Örneğin uzak bir sunucuya SSH ile bağlanıyor bir dizi işlem yapıp çıkıyorsunuz. Yada bir anonim ftp'ye bağlanıp bir çok işlem yapıp geri dönüyorsunuz. Bu işleri otomatik hale getirmek expect ile olabildiğince kolay.

#!/usr/bin/expect -f

spawn ftp $argv
expect "Name"
send "anonymous\r"
expect "Password:"
send "anonymous\r"
expect "ftp> "
send "ls\n"
interact

Bu programı aftp.exp olarak kaydedip çalıştırılabilir dosya yetkisi verelim.

pismikrop@minik:~/Desktop$ ./aftp.exp ftp.linux.org.tr
spawn ftp ftp.linux.org.tr
Connected to ftp.linux.org.tr.
220 ftp.linux.org.tr
Name (ftp.linux.org.tr:pismikrop): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    5 1005     1006         1024 May 26 20:56 pub
226 Directory send OK.
ftp>

Şahsen SSH ile uzaktaki sistem yedeklerini almak için key-agent kullanmaktan çok daha akıllıca bir durum. Bir expect betiği ile SSH'a bağlanıp, istediğiniz dizinleri yedek alabilirsiniz. Daha sonra ssh'dan çıkıp sftp kanalı ile kendi sisteminize aktarabilirsiniz.

Böyle bir periodik işlem için Cron kullanmanıza da gerek yok. "fork" ile bir alt process oluşturup. sleep ile alt süreci istediğiniz kadar bekletebilirsiniz. Böylelikle tek bir program çalıştırarak günlük işlemlerinizi halletmiş olursunuz.

Bu kadar da değil:

set send_human {.1 .3 1 .05 2}
send -h "Çok açım yemeğe gidelim mi?\n"

Bu ifade yazışmalarınızda; karşınızda biri klavye kullanıyormuş havası vermeye yarar. expect komutu ile karşıdaki kişiden gelen yanıta göre sohbeti dallandırabilirsiniz.

Expect'in tcl ve python modülü de bulunmakta.

atölye, bash, inceleme, linuxkaynak | yorumlar [0]


yalnızca dizin kipini değiştirme

Friday, December 1, 2006 3:57:00 AM tarihinde Fırat KÜÇÜK tarafından gönderildi.

Oturup bir python programı yazdığım öz yinelemeli dizin kip değiştirme yöntemini bir arkadaş tek satıra indirgemiş. Ee bize de kullanmak kalıyor tabi :)

dizinler için:

find . -type d -exec chmod 755 {} \;

dosyalar için:

find . -type f -exec chmod 644 {} \;
atölye, bash, linuxkaynak | yorumlar [0]


bash için çok renkli girdi alanı

Wednesday, November 1, 2006 1:45:00 AM tarihinde Fırat KÜÇÜK tarafından gönderildi.

Bash kullanan sevgili penguenler, işte renkli renkli bash girdi alanları :)

normal kullanıcılar için .bashrc dosyanızdaki

# Comment in the above and uncomment this below for a color prompt

yazan yorum alanının hemen altındaki PS1 değişkenini normal kullanıcılar için:

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u\[\033[1;37m\]@\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;33m\]\w\[\033[00m\]\$ '

pismikrop@kirmizi:~$

root kullanıcıları için ise

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;33m\]\w\[\033[00m\]\$ '

kirmizi:~#

yapabiliriz. Bash kabuğu "yeme de yanında yat" oldu. Siz yiyin ama "kabukları yerlere atmayın."

atölye, bash, linuxkaynak | yorumlar [0]




1


pengulog

her hakkı erkektir © 2008 e-posta