Telnet ve run komutları için Shell betiği

Otomatik telnet özelliklerine sahip ve diğer makineler için çalıştırma komutları uygulayan bir kabuk betiği tasarlandı ve böylece telnet oturumunu kullanıcıdan herhangi bir etkileşim olmadan sonlandırıldı. Kullanıcının yalnızca kabuk betiğini çalıştırması veya işlevi başka bir komut dosyasından çağırması gerekir. Bu, Linux için yaygın olarak uygulanabilir, ancak UNIX sistemi için, önceden TCL ve INSTALL paketlerinin kurulması gerekir. Expect komutunu yüklemek için ayrı bir dizin var. Diğer makina ve Linux'taki kabuk betiği arasındaki konuşmayı gizlemek için özel komutlar kullanılır. Komut dosyası çağrılırken adres, kullanıcı adı ve şifre atanır. IP adresi, kabuğun bildirimi için gereklidir, ardından çalıştırılacak komut telnet oturumunun sonunu işaretleyerek gönderilir .

Konu

Diğer makinede otomatik olarak telnet yapabilen ve komutları çalıştırabilen ve kullanıcıdan herhangi bir etkileşim olmadan telnet oturumunu sonlandıran bir kabuk betiği hazırladım; kullanıcı sadece komut dosyasını çalıştırır veya başka bir komut dosyasından çağırır.

Ancak, Unix sisteminize EXPECT ve TCL paketlerini kurmanız gerekir.

Komut aşağıdaki talimatları içerir:

#! / usr / yerel / bin / expect -f #### / usr / local / bin / expect, beklenenin yüklendiği dizindir

log_user 0 #### bu komut, komut dosyası ile diğer makine arasındaki konuşmayı gizlemek için kullanılır

adresi ayarla [lindex $ argv 0] ### betiği $ adresine çağırırken ilk iletilen parametreyi atayın

username değerini ayarla [lindex $ argv 1] ### betiği $ username 'e çağırırken 2. pass parametresini atayın

parola ayarla [lindex $ argv 2] ​​### betiği $ password olarak çağırırken 3. pass parametresini atayın

spanet telnet $ {address} ### IP = $ address ile makineye telnet oturumu başlatın

### makineyle konuşmaya başla:

"giriş:" bekliyoruz

gönder - "$ {username} \ r"

"Şifre:" bekliyoruz

gönder - "$ {password} \ r"

"$" bekliyoruz

Gönder - "#! / bin / ksh \ r" ### kullanılacak kabuğu ilan edin (isteğe bağlı)

"$" bekliyoruz

send - "### ona yürütmek istediğiniz herhangi bir komutu yazın"

"$" bekliyoruz

send - "exit \ r" ### telnet oturumunu sonlandırın ve komut dosyasından çıkın

Bu betiği çalıştırmak için şunu yazdım:

$ expect_script "adres" "kullanıcı adı" "şifre" ### betiğin adı "expect_script"

Ancak bekliyoruz komut dosyasını çağırmadan önce bekliyoruz komut dosyasını çalıştırılabilir hale getirmelisiniz ve bu yazarak yapılabilir:

$ chmod + x expect_script

Çözüm

Bunu dene:

 #! / usr / yerel / bin / bekle spawn telnet bekle "giriş:" gönder "\ n" bekle "Şifre:" gönder "\ n" gönder "bash \ n" gönder "cd / opt \ n" gönder "ls - ltr \ n "? (Eğer vermediyseniz \ n cevabınızı bekleyecek veya manuel olarak enter yazmanız gerekecek). etkileşim 

"Expect" komutunu nasıl yürüteceğinizi bekleyin -f

Ör: bekleyin -f.

Not

Forumdaki bu ipucu için ZooZoo'ya teşekkür ederiz.

Önceki Makale Sonraki Makale

En Ipuçları