Chinaunix

标题: ssh登陆到一台机器,gzgrep一把,然后把结果返回本地,咋写? [打印本页]

作者: wayflying    时间: 2012-07-05 14:49
标题: ssh登陆到一台机器,gzgrep一把,然后把结果返回本地,咋写?
平时总是用手工搞,ssh user@IP地址,然后提示输入密码,再cd到一个目录,gzgrep一个东西再返回

麻烦啊,但不知道如何自动传递ssh要的密码,求方法:wink: 最烦经常做低级重复工作
作者: centrify    时间: 2012-07-05 21:35
本帖最后由 centrify 于 2012-07-05 21:46 编辑
  1. #!/bin/bash
  2. /usr/bin/expect <<\EOF

  3. set timeout 60
  4. set pwd "该机器的密码"
  5. spawn ssh 10.10.10.1
  6. expect {
  7. "\[#$\]" {send "\r" } ### 假如有了ssh 公钥之类的,直接回车。当然普通用户下边还可能需要sudo,自己处理一下吧。
  8. "not know" {send_user "[exec echo \"not know\"]";exit}

  9. "(yes/no)?" {send "yes\r";exp_continue} #continue的意义,靠猜测也能差不多知道了吧?可以Man expect

  10. "password:" {send "$pwd\r"}

  11. "Permission denied, please try again." {

  12. send_user "[exec echo \"Error:Password is wrong\"]"

  13. exit }

  14. }
  15. EOF
  16. set retu [gzgrep xxx   xxx.gz]
  17. close
  18. exit
复制代码

作者: rdcwayx    时间: 2012-07-06 13:57
自己先要设好环境,比如无密码的SSH登录。这样的话,只要运行下面的命令即可:
  1. ssh username@hostname "cd /PATH; gzgrep KEY abcd.log"
复制代码

作者: wayflying    时间: 2012-07-12 14:05
rdcwayx 发表于 2012-07-06 13:57
自己先要设好环境,比如无密码的SSH登录。这样的话,只要运行下面的命令即可:

现在两个机器利用网上的办法,建立了ssh互信关系,不用输入密码了,也实现了远程查询,但是每次查询一次都会在本地生产一个以查询内容命名的文件
unable to initialize mechanism library [/usr/lib/gss/gl/mech_krb5.so]

|-----------------------------------------------------------------|
| This system is for the use of authorized users only.            |
| Individuals using this computer system without authority, or in |
。。。
但查询结果正确
作者: rdcwayx    时间: 2012-07-12 14:37
本帖最后由 rdcwayx 于 2012-07-12 14:37 编辑

我没遇到过这样的问题,下面都是网上搜来的。你自己试试看吧。

Workaround:

Edit /etc/ssh/ssh_config and add the following
  1. Host *
  2. StrictHostKeyChecking no
  3. GSSAPIKeyExchange no
  4. GSSAPIAuthentication no
复制代码
And Edit /etc/ssh/sshd_config and add the following
  1. GSSAPIAuthentication no
  2. GSSAPIKeyExchange no
  3. GSSAPIStoreDelegatedCredentials no
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2