telnetshell腳本
⑴ shell腳本telnet登陸交換機備份配置
#!/bin/bash
export datetime='date +%Y%m%d'
export BAKTIME=`date +%Y%m%d%H%M%S`
export user="admin"
export password="admin"
export back="dis cu"
export BAK_DIR=/back/h3c
for i in $(cat ip_file)
do
{
echo $user;
sleep 1;
echo $password;
sleep 1;
echo $back;
sleep 1;
echo " ";
sleep 5;
}|telnet $i > $BAK_DIR/$i-$BAKTIME.log
done
mkdir $BAK_DIR/H3C_$datetime
mv *-$datetime* H3C_$datetime
注釋
####################################
export BAKTIME=`date +%Y%m%d%H%M%S` 輸出系統時間
export user="admin" 此用戶為交換機、路由器用戶名
export password="admin" 此密碼為交換機、路由器密碼
export back="dis cu" 此命令為查看H3C交換機配置
export BAK_DIR=/home/erp/back/h3c 此目錄是linux伺服器備份交換機、路由器的存放目錄
cat ip_file 此命令意思是查看ip_file文件中的內容,逐行查看
####################################
ip_file 文件添加交換機IP(注意:不要加雙引號, 文件與腳本在同一目錄下存放)
#以下為交換機、路由器IP地址
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.7
⑵ 如何通過shell腳本登錄telnet 並將執行結果輸出到文件
#!/bin/bash
USERNAME=localhost #用戶名
PASSWORD=123456 #密碼
HOST_IP=192.168.1.** #要登錄的主機IP
(
sleep 1
echo ${USERNAME} #登錄時輸入用戶名
sleep 1
echo ${PASSWORD} #登錄時輸入密碼
sleep 3
echo "ping 192.168.2.10" ######### 如何將這條命令結果輸出到文件保存呢???
sleep 3
) | telnet ${USERNAME} ${HOST_IP} #telnet到主機
⑶ windows下用批處理telnet登錄到linux執行shell腳本
實現不了的,因為telnet情況下輸入用戶名密碼後就轉邊成了linux的終端,而不再是windows的命令提示符,所有批處理命令都不能被執行了,但是你的可以實現和你要求的差不多的
@echo off
set /p IP="請輸入ip:"
telnet %IP% 22
批處理到這里就可以了,以為已經連接接下來的登陸操作linux會自動要求你輸入用戶名和密碼
輸入完畢當然也就是登陸了,直接./shell腳本加路徑就執行了
和你的要求相比也就多了./path 哈哈
⑷ 用expect實現telnet登陸到linux系統後,再執行一個shell腳本,待這個shell腳
參考一種類自然語言的腳本語言:
001 var {v_time} value datetime
002 screen.text at point {10} {30} string {2. telnet ipv4 (192.168.186.132:23) test , datetime: ~v_time~}
003
004 telnet.connect ip {192.168.186.132} port {23}
005 telnet.recv expect {Username:}
006 telnet.send {cisco%0a}
007 telnet.recv expect {Password}
008
009 telnet.send {cisco%0a}
010 telnet.recv expect {>}
011 telnet.send {enable%0a}
012 telnet.set onrecv {More} send { }
013 telnet.set delay {200} ms after per byte send
014 telnet.send {show version%0a}
015 telnet.recv for {5} seconds
016
017 telnet.send {show run%0a}
018 telnet.recv for {5} seconds
019 telnet.send {exit%0a}
020 telnet.close
021
022 var {v_time} value datetime
023 screen.text at point {10} {60} string {telnet tested end. datetime:~v_time~}
024
025 run.end
--------------------------------------------------------------------
簡單網路管理語言(Simple Network Management Language)是一種類自然語言的腳本語言,它採用snmp、telnet、ping、dns、arp、ssh、tcp、udp、web等協議訪問網路設備,內置smtp協議用於告警等郵件的發送,支持excel、mysql、sqlite等3種方式進行網管數據的存取。
最新版本: snml8.13(ladybird20200205) utf8&ipv6
項目託管地址:https://github.com/ladybirdSnml/snmlipv6utf8snmptelnetsshweb
打包下載:https://ladybirdsnml.github.io/snmlipv6utf8snmptelnetsshweb/snml_utf8ipv6.zip
⑸ 如何用shell腳本實現自動telnet
很多人認為telnet象passwd和su一樣,無法通過管道和輸入轉向使其自動工作,但實際上telnet是支持輸入轉向的.雖然,嚴格的說,shell腳本無法使telnet進入交互狀態,但它確實可你使你進入遠程系統並運行你希望的命令後退出.這遠比用rsh(remsh,rcmd)更令人放心,
使用如下的腳本可以達到你的要求:
(sleep 1;echo user;sleep 1; echo passwd;echo yourcmd ;sleep 1)|telnet remotehost
其中user,passwd,yourcmd,remotehost分別更換成你的用戶名,用戶口令,你想要運行的命令,遠程機器名或IP便可以了. 如果要想使用腳本進入交互狀態,可以使用expect.
如果你要通過telnet某個IP的埠來得到部分數據,則可以用以下命令
(sleep 5;) | telnet IP PORT 這樣就可以在telnet後將PORT在5秒內輸出的數據列印到屏幕上,然後自動退出
EG:
tempValue="KEY"
str4=`(sleep 1;echo AA;sleep 1; echo 123; sleep 1; echo tail -f /aa/log/a.log;sleep 1) | telnet ${IP} | grep ${tempValue}`
num4=`echo ${#str4}`
if [ ${num4} -eq 0 ];then
echo "==::在a.log文件中沒有找到關鍵字KEY,請檢查!"
sheet4="@NULL"
else
echo "==::在a.log文件有找到關鍵字KEY!"
sheet4="@OK"
fi
⑹ 如何用shell腳本實現自動telnet-snowtty-ChinaUnix博客
Shell腳本自動Telnet並執行遠端機器的腳本
簡單使用狀況
[plain]
#!/bin/sh
(sleep 10;
echo "username";
sleep 10;
echo "password";
sleep 10;
echo "pwd";
sleep 50;
#echo exit
)|telnet $ip
這里只是連接到遠端機器,查看一下當前所在的目錄。
username/password 是telnet 到遠端機器的用戶名,密碼
sleep 是一個等待時間,根據具體的機器狀況或是執行命令的需要的時間來設置。
帶變數使用
[plain]
⑺ linux 中如何使用shell 腳本執行 telnet
登錄並備份到tftp的腳本是這個奶奶樣的:
#!/usr/bin/expect
spawn telnet 10.21.10.233
expect "*sername*"
send "admin\r"
expect "*asswor*"
send "******\r"
send "en\r"
expect "*assw*"
send "*******\r"
send " running-config startup-config\r"
expect "*estination filename*"
send "\r"
send " startup-config tftp:\r"
expect "*ddress or name of remote host*"
send "10.21.10.110\r"
expect "*estination filename*"
send [exec date +C2950_BJ95-20%y%m%d].config\r
sleep 10
send "exit\r"
send "\r"
⑻ 可以寫shell腳本實現自動連接telnet嗎
Shell腳本自動Telnet並執行遠端機器的腳本
簡單使用狀況
[plain]
#!/bin/sh
(sleep 10;
echo "username";
sleep 10;
echo "password";
sleep 10;
echo "pwd";
sleep 50;
#echo exit
)|telnet $ip
這里只是連接到遠端機器,查看一下當前所在的目錄。
username/password 是telnet 到遠端機器的用戶名,密碼
sleep 是一個等待時間,根據具體的機器狀況或是執行命令的需要的時間來設置。
帶變數使用
[plain]
⑼ 遠程telnet寫shell腳本,如何結束腳本編寫
不要用 vi 編寫腳本,用 echo >> 寫腳本文件 ~~~ vi進去了很難出來的,你懂的
正如bat里用echo寫vbs腳本然後執行一樣。
⑽ shell腳本ping和telnet
很明顯的一個錯誤就是if要用fi結束,你腳本里有兩個if,我卻只能找到一個fi;
第二點就是telnet那部分,telnet=`telnet $1 $2`應該就死住沒反應了,你手動模擬一下就好了,比如我:
telnet 192.168.243.1 3131
Trying 192.168.243.1...
Connected to 192.168.243.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
如果我不鍵入^](ctrl+])的話,這個telnet進程是不會結束的,不會結束的話,腳本也就不會進行下一步。