You are here: Home » Linux » Expect Paketi ile Session Otomasyonu

Expect Paketi ile Session Otomasyonu

Linux dağıtımlarından herhangi birine “expect” paketi kurulumundan sonra yazdığınız scriptlere input olarak sizin yazacağınız girdileri otomatik olarak scripte yazdırabilirsiniz. Bu ne demek oluyor kısaca şöyle açıklayayım.

Öncelikle “expect” paketini kurduğunuzu varsayıyorum. (packet manager ile kurmakta sıkıntı yaşamassınız) Senaryomuz şöyle olsun ; Diyelimki dosya paylaşım sitelerinden dosya indirdiniz ve yeni bir dosya indirmeden önce beklemek istemiyorsunuz. Ya kalkacaksınız modeminizi aç/kapa yapacaksınız tabi dinamik bir ip adresiniz varsa ya da modemin web arayüzünü açacaksınız modemi oradan restart edeceksiniz ya da telnet/ssh ile login olup modemi bir şekilde baştan başlatacaksınız. Bu işlemi  “expect” paketi yardımıyla tek bir script ile yapabilirsiniz.

Aşağıda telnet ile Airties bir modeme baglanarak modemi restart eden scripti ekliyorum. Bu scripti ihtiyaçlarınıza göre değiştirip komut satırından kullanıcı girdileri ile yaptığınız herhangi bir işlemi otomaik hale getirebilirsiniz.

#!/bin/bash

expect << EOF
set timeout 20
spawn telnet 192.168.1.1
expect "BusyBox on localhost login: "
send "root\r"
expect "Password: "
send "\r"
expect "*#"
send "reboot\r"
expect "*#"
send "exit"
exit
EOF

Hoşunuza gidecek başka bir senaryoya da uyarlayabilirsiniz. Mesela kendi sitenize aldıgınız reklamlara ipnizi değiştirerek tıklayan bir bota ne dersiniz 😉

Filed under

Linux

| Tags:

  1. Merhaba,
    Dış scriptten alınan parametreyi send komutu ile başka bir scripte geçirme konusunda bir örnek verebilirmisiniz. Ya da böyle bir şey yapılabilir mi? Yani ;
    send “./deneme.sh “$1” “$2″\r” Bu komut çalışmıyor.
    send “./deneme.sh ali 15 “\r” Bu şekilde çalışıyor.
    Çift tırnaktan mı yoksa parametre geçirmede mi problem var anlayamadım.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This site uses Akismet to reduce spam. Learn how your comment data is processed.