亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 16640 | 回復(fù): 15
打印 上一主題 下一主題

[系統(tǒng)管理] expect在執(zhí)行命令返回結(jié)果中,有時(shí)候只返回一些結(jié)果,并卡住 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-12-04 19:51 |只看該作者 |倒序?yàn)g覽
10可用積分
在bash中調(diào)用expect登錄遠(yuǎn)程主機(jī)執(zhí)行命令。發(fā)現(xiàn)expect在執(zhí)行命令find時(shí),有時(shí)候返回正常結(jié)果,有時(shí)候只返回一些結(jié)果,并卡住,然后就不退出。
登錄的是同一個(gè)遠(yuǎn)程主機(jī)。同一時(shí)間執(zhí)行腳本10次,基本上有5次是卡住的。
將  |xargs -I {} last -f {}    改為 -exec last -f \;  也是一樣的情況。請(qǐng)指教下原因。謝謝。

expect <<EOF
   set timeout -1
   log_file ${tmpdir}/${atype}_tmp.txt
   spawn ssh ${user}@${ip}
   expect {
      "yes/no" { send "yes\r";exp_continue}
      "assword" { send "${pw}\r"}
      }
   expect "#"
   send "touch -t ${last_time}  last_time.txt \r"
   expect "#"
   send "find /var/log -type f -name \"wtmp*\" -newer \"last_time.txt\" |xargs -I {} last -f {} \r"
   expect "#"
   send " rm  -f last_time.txt \r"
   expect "#"
   send  "exit\r"
   expect eof
EOF

論壇徽章:
5
金牛座
日期:2013-10-14 14:40:422015年亞洲杯之伊朗
日期:2015-03-26 10:37:012015亞冠之浦和紅鉆
日期:2015-10-12 17:47:4115-16賽季CBA聯(lián)賽之山東
日期:2016-01-20 16:43:1215-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-29 16:43:59
2 [報(bào)告]
發(fā)表于 2013-12-05 10:00 |只看該作者
SLES11_SP3:~/shell/expect # cat ssh.sh
#!/bin/bash
tmpdir=/tmp
atype=expect_f
pw=suse
user=root
ip="192.168.10.12"
last_time="201301010101"
expect <<EOF
    set timeout -1
    log_file ${tmpdir}/${atype}_tmp.txt
    spawn ssh ${user}@${ip}
    expect {
       "yes/no" { send "yes\r";exp_continue}
       "assword" { send "${pw}\r"}
       }
    expect "#"
    send "touch -t ${last_time}  last_time.txt \r"
    expect "#"
#   send "find /var/log -type f -name \"wtmp*\" -newer \"last_time.txt\" |xargs last -f \r"
    send "find /var/log -type f -name \"wtmp*\" -newer \"last_time.txt\" |xargs -I {} last -f {}\r"
    expect "#"
    send " rm  -f last_time.txt \r"
    expect "#"
    send  "exit\r"
    expect eof
EOF

論壇徽章:
5
金牛座
日期:2013-10-14 14:40:422015年亞洲杯之伊朗
日期:2015-03-26 10:37:012015亞冠之浦和紅鉆
日期:2015-10-12 17:47:4115-16賽季CBA聯(lián)賽之山東
日期:2016-01-20 16:43:1215-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-29 16:43:59
3 [報(bào)告]
發(fā)表于 2013-12-05 10:05 |只看該作者
我用你這個(gè)測(cè)試時(shí),執(zhí)行倒是沒(méi)問(wèn)題,,xargs -I...改成個(gè)last -f更好看點(diǎn)

唯一遇到的問(wèn)題是: 連續(xù)多次執(zhí)行,就報(bào)錯(cuò)
SLES11_SP3:~/shell/expect # ./ssh.sh
spawn ssh root@192.168.10.12
ssh: connect to host 192.168.10.12 port 22: Cannot assign requested address
expect: spawn id exp5 not open
    while executing
"expect "#""

這個(gè)是端口不夠用,很多端口都處于TIME_WAIT階段,
如過(guò)是這個(gè)問(wèn)題,你可以先看下端口范圍
SLES11_SP3:~/shell/expect # sysctl -a |grep ip_local_port_range
net.ipv4.ip_local_port_range = 9000     9001
小的話,就在/etc/sysctl.conf后面添加,擴(kuò)大后的端口范圍
net.ipv4.ip_local_port_range = 9000     30000
保存退出
執(zhí)行sysctl -p后再試試

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-12-05 10:26 |只看該作者
回復(fù) 3# itfly3

你腳本顯示沒(méi)有登錄遠(yuǎn)程主機(jī)。我的是登錄上遠(yuǎn)程主機(jī),并find執(zhí)行命令返回了部分結(jié)果,然后卡住不動(dòng),也不退出主機(jī)。兩者情況不一樣。
你的腳本返回多少結(jié)果?我成功執(zhí)行的話,完整返回180行;只返回部分結(jié)果,有時(shí)候就返回100行就不動(dòng)了。

   

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報(bào)曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
5 [報(bào)告]
發(fā)表于 2013-12-05 10:26 |只看該作者
1. 加上 exp_internal 1 開(kāi)啟調(diào)試自己觀察一下
2. 通常expect "#" 會(huì)寫(xiě)成 expect "# "
3.send "find /var/log -type f -name \"wtmp*\" -newer \"last_time.txt\" |xargs -I {} last -f {} \r"
改成
send {find /var/log -type f -name "wtmp*" -newer "last_time.txt" |xargs -I {} last -f {}}
send " \r"

論壇徽章:
5
金牛座
日期:2013-10-14 14:40:422015年亞洲杯之伊朗
日期:2015-03-26 10:37:012015亞冠之浦和紅鉆
日期:2015-10-12 17:47:4115-16賽季CBA聯(lián)賽之山東
日期:2016-01-20 16:43:1215-16賽季CBA聯(lián)賽之遼寧
日期:2016-03-29 16:43:59
6 [報(bào)告]
發(fā)表于 2013-12-05 10:55 |只看該作者
我用200個(gè)文件作為目標(biāo)文件,,for執(zhí)行腳本10次也是沒(méi)問(wèn)題
返回信息就是200個(gè)
不知道你那是什么情況了
你可以把那個(gè)腳本內(nèi)容復(fù)制下,粘貼到一個(gè)新的文件中,,有時(shí)可能在編輯時(shí)格式有些不對(duì)

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2013-12-05 12:38 |只看該作者
回復(fù) 6# itfly3

我是直接編輯,所以不是有亂碼問(wèn)題。并且有時(shí)候是能執(zhí)行成功的。
   

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2013-12-05 12:48 |只看該作者
回復(fù) 5# waker

都嘗試了,還是不行。使用 -d 還是 exp_internal 1 進(jìn)行調(diào)試時(shí),發(fā)現(xiàn)貌似卡在expect_out(buffer)。我設(shè)置 set match_max 500000,還是不行。運(yùn)行結(jié)果如下

..................
root  pts/0  1.1.1.1  Mon Nov 21 17:10 - 17:12 ( 00:01)
root  pts/0  1.1.1.2
expect: does “2 (01:50) \r\n  root  pts/0  1.1.1.1  Mon Nov 21 17:00 - 17:02 ( 00:01) \r\n  root  pts/0  1.1.1.1  Mon Nov 21 17:01 - 17:02 ( 00:01)
................
(spawn_id exp5) match glob pattern "# "?  no
expect: set expect_out(spawn_id) "exp5"
expect: set expect_out(buffer)    " Nov 21 17:03 - 17:04 ( 00:01) \r\n root  pts/0  1.1.1.1  Mon Nov 21 17:04 - 17:05 ( 00:01) \r\n
...............
root  pts/0  1.1.1.1  Mon Nov 21 17:00 - 17:02 ( 00:01) \r\n"

---------------------------然后卡住就不動(dòng)了。
   

論壇徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亞冠之浦和紅鉆
日期:2015-06-23 19:10:532015亞冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16賽季CBA聯(lián)賽之山東
日期:2016-01-31 18:25:0515-16賽季CBA聯(lián)賽之四川
日期:2016-02-16 16:08:30程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2016-06-29 06:20:002017金雞報(bào)曉
日期:2017-01-10 15:19:5615-16賽季CBA聯(lián)賽之佛山
日期:2017-02-27 20:41:19
9 [報(bào)告]
發(fā)表于 2013-12-05 13:58 |只看該作者
expect沒(méi)有等到"# "
建議你先不要xargs 看看find的結(jié)果有什么不同

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2013-12-05 14:47 |只看該作者
回復(fù) 9# waker
使用 -exec last -f {} \;  或者重定向到一個(gè)文件再cat出來(lái),情況依然如此。

   
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP