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

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

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3920 | 回復(fù): 6
打印 上一主題 下一主題

perl expert模塊 調(diào)用 echo輸出字符串被截?cái)鄦栴} [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-10-21 23:52 |只看該作者 |倒序?yàn)g覽
本帖最后由 gx303841541 于 2014-10-21 23:54 編輯

問題:
PC A 上perl腳本通過expert模塊ssh到PC B ,調(diào)用 echo 輸出字符串到文件,但是當(dāng)字符串較大時(shí)總是有一些行丟失或者被截?cái)嗟膯栴},莫名其妙,望高手指點(diǎn)迷津:


原字符串:
  1. 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  2. 222222222222
  3. 333333333333
  4. 44444
  5. 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  6. 666666666666666666
  7. 77777777777777777777777777
復(fù)制代碼
通過echo 到文件后變成:
  1. 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  2. 222222222222
  3. 33333
  4. 44444
  5. 55555555555555555555
  6. 6666666666
  7. 77777777777777777777777777
復(fù)制代碼
以下為模擬問題的腳本:
  1. #!/usr/bin/perl

  2. use 5.010;

  3. use Expect;


  4. my @exp_result;
  5. my $handle = exp_open('192.168.2.225', 'password', 'ubuntu');
  6. my $cmd_buff;       


  7. my $test = '
  8. 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  9. 222222222222
  10. 333333333333
  11. 44444
  12. 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  13. 666666666666666666
  14. 77777777777777777777777777
  15. 8888888888
  16. 99999999999999999999999999999999999999999999999
  17. 0000000000000000000000000
  18. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  19. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  20. ccccccccccccccccccccccccccccccccccccccccccc
  21. ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
  22. eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  23. 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  24. 222222222222
  25. 333333333333
  26. 44444
  27. 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  28. 666666666666666666
  29. 77777777777777777777777777
  30. 8888888888
  31. 99999999999999999999999999999999999999999999999
  32. 0000000000000000000000000
  33. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  34. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  35. ccccccccccccccccccccccccccccccccccccccccccc
  36. ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
  37. eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  38. 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  39. 222222222222
  40. 333333333333
  41. 44444
  42. 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  43. 666666666666666666
  44. 77777777777777777777777777
  45. 8888888888
  46. 99999999999999999999999999999999999999999999999
  47. 0000000000000000000000000
  48. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  49. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  50. ccccccccccccccccccccccccccccccccccccccccccc
  51. ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
  52. eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  53. 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  54. 222222222222
  55. 333333333333
  56. 44444
  57. 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  58. 666666666666666666
  59. 77777777777777777777777777
  60. 8888888888
  61. 99999999999999999999999999999999999999999999999
  62. 0000000000000000000000000
  63. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  64. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  65. ccccccccccccccccccccccccccccccccccccccccccc
  66. ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
  67. eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  68. 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  69. 222222222222
  70. 333333333333
  71. 44444
  72. 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  73. 666666666666666666
  74. 77777777777777777777777777
  75. 8888888888
  76. 99999999999999999999999999999999999999999999999
  77. 0000000000000000000000000
  78. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  79. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  80. ccccccccccccccccccccccccccccccccccccccccccc
  81. ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
  82. eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  83. 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
  84. 222222222222
  85. 333333333333
  86. 44444
  87. 55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
  88. 666666666666666666
  89. 77777777777777777777777777
  90. 8888888888
  91. 99999999999999999999999999999999999999999999999
  92. 0000000000000000000000000
  93. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  94. bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  95. ccccccccccccccccccccccccccccccccccccccccccc
  96. ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
  97. eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  98. ';


  99. my $test1 = "123";

  100.     $handle->expect(0);
  101.         $handle->clear_accum();
  102.     $handle->send("ls -l\n");
  103.     @exp_result = $handle->expect(2, '-re', 'tftpboot#');
  104.     $cmd_buff = $handle->exp_before.$handle->exp_match.$handle->exp_after;
  105.     $cmd_buff .= $handle->clear_accum();
  106.     if (!defined($exp_result[0]))
  107.     {
  108.         print("expect /'tmp#'/ TIMEOUT!");
  109.     }
  110.     $handle->expect(0.001);
  111.     $cmd_buff .= $handle->clear_accum();


  112.         print "------------------------\n";

  113.     $handle->expect(0);
  114.         $handle->clear_accum();
  115.     $handle->send("echo -e \"$test\" > test.cfg\n");
  116.     @exp_result = $handle->expect(2, '-re', 'tftpboot#');
  117.     $cmd_buff = $handle->exp_before.$handle->exp_match.$handle->exp_after;
  118.     $cmd_buff .= $handle->clear_accum();
  119.     if (!defined($exp_result[0]))
  120.     {
  121.         print("expect /'tmp#'/ TIMEOUT!");
  122.     }
  123.     $handle->expect(0.001);
  124.     $cmd_buff .= $handle->clear_accum();




  125. ##########################################################
  126. sub exp_open(){
  127.        
  128.         my ($host, $password, $expect_pattern) = @_;
  129.         $handle = Expect->new;
  130.         $handle->raw_pty(1);
  131.        
  132.         $handle = Expect->spawn("ssh $host");
  133.         $handle->log_file("exp.log");
  134.         $handle->log_stdout(1);
  135.        
  136.         print("ssh [$host] [$password] [$expect_pattern]\n");


  137.         my $ret = $handle->expect(10,[
  138.                                                 qr/password:/i,
  139.                                                 sub {
  140.                                     my $self = shift ;
  141.                                     $self->send("$password\n");
  142.                                                                 exp_continue;
  143.                             }
  144.                          ],
  145.                          [
  146.                                                 'connecting (yes/no)?',
  147.                                                 sub {
  148.                                     my $self = shift ;
  149.                                                                 $self->send("yes\n");
  150.                                                                 exp_continue;
  151.                              }
  152.                          ],
  153.                          [
  154.                                                 "$expect_pattern",
  155.                                                 sub {
  156.                                                                 my $self = shift ;
  157.                                                                 $self->clear_accum();
  158.                                                                 $self->expect(0.001);
  159.                                                                 $self->clear_accum();
  160.                                                                 $self->send("cd /tftpboot\n");
  161.                              }
  162.                          ]
  163.                      );
  164.     if (!defined($ret))
  165.     {
  166.         die("TIMEOUT! [$!]");
  167.     }       


  168.     $handle->send("\n");
  169.     my @exp_result = $handle->expect(2, '-re', 'tftpboot#');
  170.     if (!defined($exp_result[0]))
  171.     {
  172.         die("exec CMD FAILED!! [$!]");
  173.     }
  174.    


  175.         $handle->clear_accum();
  176.         $handle->expect(0.1);
  177.         $handle->clear_accum();
  178.         return $handle;
  179. }
復(fù)制代碼

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
2 [報(bào)告]
發(fā)表于 2014-10-22 07:26 |只看該作者
終端是有寬度的,你echo的時(shí)候就折斷了。
要是不需要交互,就不用expect了。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2014-10-22 09:08 |只看該作者
哦?但是被截?cái)嗟牟灰欢ㄊ亲铋L(zhǎng)的行哦!還有就是字符串內(nèi)容較少時(shí),即便最長(zhǎng)的行業(yè)沒有被截?cái),這個(gè)怎么解釋呢?回復(fù) 2# laputa73


   

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-10-22 13:49 |只看該作者
你好,你的意思是expect的問題是吧?那我想要在A機(jī)上跑腳本到B上執(zhí)行還有別的辦法嗎?回復(fù) 2# laputa73


   

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
5 [報(bào)告]
發(fā)表于 2014-10-22 22:26 |只看該作者
回復(fù) 4# gx303841541


    如果你不需要交互性的命令,可以配置key方式認(rèn)證,然后直接"ssh  $ip  ''echo aaaaa'"這樣
   如果沒法配key,必須密碼登錄,用expect登錄也沒問題。

論壇徽章:
42
19周年集字徽章-周
日期:2019-10-14 14:35:31平安夜徽章
日期:2015-12-26 00:06:30數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2015-12-01 06:20:002015亞冠之首爾
日期:2015-11-04 22:25:43IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-08-17 06:20:00寅虎
日期:2014-06-04 16:25:27獅子座
日期:2014-05-12 11:00:00辰龍
日期:2013-12-20 17:07:19射手座
日期:2013-10-24 21:01:23CU十二周年紀(jì)念徽章
日期:2013-10-24 15:41:34IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-27 06:20:0015-16賽季CBA聯(lián)賽之新疆
日期:2016-06-07 14:10:01
6 [報(bào)告]
發(fā)表于 2014-10-22 22:35 |只看該作者
你是說輸出到文件里面的內(nèi)容缺了?
那就是在傳遞$test時(shí)丟失了
試試$exp->raw_pty(1);

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2014-10-24 14:15 |只看該作者
$exp->raw_pty(1);這個(gè)已經(jīng)有了!
不過我加了 $exp->log_stdout(1); 后倒是正常了!不過不懂怎么回事。。。。




回復(fù) 6# laputa73


   
您需要登錄后才可以回帖 登錄 | 注冊(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ū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP