-
2012-04-02
ftp、ssh与here document - [垒]
1. here document
没什么好说的,好用的机制。除了在shell里实现自动应答,还可以变相作为多行注释。目前为止还没找到其他有趣的用法,有待继续挖掘。
2. ftp与here document
以下,实现已知密码的前提下,远程获取sybase IQ的全部系统运行日志。
#!/bin/bash USER=sybase PSWD=sybase mkdir sybiqlog ftp -n 135.32.82.116 << FTPCMDS quote user $USER quote pass $PSWD cd /export/home/sybase/ASIQ-12_7/logfiles lcd sybiqlog prompt mget * bye FTPCMDS
有两个要点,ftp的-n参数防止了自动进入交互登录的过程,而只是进入ftp>提示符;而后面user和pass指令前面的quote,会按次序将账户和密码送给服务端
而在这里,仍然是可以用脚本参数临时指定账户和密码的,比明文写在脚本里更安全一些。
ftp+Here Document,鸣谢以下地址:http://www.stratigery.com/scripting.ftp.html
3. SSH与here document
懒了自然想要更懒,自动收集远端服务器上想要关注的进程的信息,就不用时时登录上去看了。代码如下,不过……
#!/bin/bash ssh 135.32.82.116 << SSHCMDS cd /export/home/xxxx/bin ./prox.sh exit SSHCMDS
问题来了,执行的时候它还是跟你要登录密码,SSH不是FTP,这个不是Here Document里加一句quote就能搞定的了,何解?
接下来的跟Here Document没什么关系。SSH要实现远程自动登录,已经找到最懒的办法如下:
a. 执行ssh-keygen -d,生成本地公钥和私钥,提问passphrase的时候,直接回车,表示私钥密码留空,否则后面登录远端服务器的时候还是会提示要求输入密码。
b. 执行ssh-copy-id -i KEY_PATH USR@SERVER,KEY_PATH就是刚才生成的密钥,要指定路径和文件名;USR@SERVER则指定你要用哪个账户登录哪个服务器,SERVER这里可以是IP地址或者域名随意,确保可以远程访问即可。
c. 现在可以执行ssh SERVER了,直接登录完毕进入命令行提示符。
有了以上的铺垫,前面那个脚本里带了Here Document的ssh命令就可以执行下去了。不过缺点是安全性多少有点下降。其实有更安全的办法,但会比较麻烦。后续继续研究。
SSH的自动登录,鸣谢fwolf先生:http://www.fwolf.com/blog/post/279
-
起因是在solaris下用sed过滤文本中的制表符,谁曾想solaris不识别“\t”的写法,费了半天劲才查到可以用Ctrl+v、Ctrl+i的方法输入,代替转义字符“\t”。
帮到了忙的这篇blog地址如下:
-
刚刚知道在SuSE发行版中,不叫这个名字,SuSE自己的实现,名字叫App Armor……
某台SLES9服务器,vsftpd不能上传,返回553,且不能获取远端目录列表,返回226。原来还有App Armor这等玄机,关掉之后自然就好了。
-
2012-01-12
关于接下来要搞清楚的几个名词 - [垒]
twitter storm
clojure
hadoop
OLTP
==========================
话说,快两年没在这里写东西了,账户居然还在,甚慰
-
2010-12-09
乱序记录者的日志005 - [啰嗦]
2010年12月9日,早晨五点半,或者六点,我醒了。
越来越没有心情和气力来码字了。







