+ -
当前位置:首页 → 问答吧 → shell小问

shell小问

时间:2011-07-31

来源:互联网

1. 如何实现:我有个文件,里面有很多行。我想把以S开头的那一行的倒数第二个字符替换成A。
如:
123455677788
S123士大夫要枯干 dfdfgg
asdfasdfafd
S'...>dfgdagfadwex
如这四行,我要把第二行倒数第二个字符g替换为A;第四行倒数第二个字符e替换为A成以下内容:
123455677788
S123士大夫要枯干 dfdfAg
asdfasdfafd
S'...>dfgdagfadwAx

2. 请问一个shell脚本:
我需要将一个文件(假设文件为test)从现有机器上telnet到IP1(用户名1/密码1)的机器,并在IP1机器上执行特定命令(如1.sh);然后又从IP1机器传到IP2(用户名2/密码2)机器上;并在IP2机器上执行自己的命令(如:2.sh)。
(考虑到网络可能不是很顺序telnet后好像要等1、2秒才会输入用户名密码,记得好像要用sleep)
如果不能这样,可以降低要求:只将文件传到目的地IP2上

作者: xinhua0910   发布时间: 2011-07-31

1.
sed "s/\(^S[^'].*\)\(.\)\(.\)$/\1A\2/" filename

2.差不多就是自动登录,参照
http://litvip.com/2011/07/28/545

或者你自己写expect脚本

作者: steptodream   发布时间: 2011-07-31

第二种那种要求 我读起来都费劲 这样的结构 让管理工作变的复杂。

作者: steptodream   发布时间: 2011-07-31

让主席费心了,呵呵
我们是做银行项目,由于网络限制,经常要从开发环境将执行码先传到我们的前置,然后再从前置机器传到远程服务器上,并且还在要远程服务器上启停服务

引用 2 楼 steptodream 的回复:
第二种那种要求 我读起来都费劲 这样的结构 让管理工作变的复杂。

作者: xinhua0910   发布时间: 2011-07-31

不好意思各位。
写错了,第二个问题,不是telnet,是FTP。 将一个文件FTP到IP1,然后又ftp到IP2

作者: xinhua0910   发布时间: 2011-07-31

ftpFunc(){
ftp -n ipaddress<<EOF
  user xx xx
  bin
  put $file
  bye
EOF
}

作者: thefirstz   发布时间: 2011-07-31

第二个问题,可以写一个定时脚本,用at或crontab写,执行的内容大致为:
IP1上执行:每隔若干秒判断某个目录下是否有新增文件(可以用du ls 之类的命令sed wc加工后加SEHLL判断),如果有,自动执行ftp传输到ip2 ,然后删除自己或移动到另一个目录下。
IP2上执行:每隔若干秒判断某个目录下是否有新增文件(可以用du ls 之类的命令sed wc加工后加SEHLL判断),如果有,自动执行你需要的脚本。

作者: shujuhuifu802   发布时间: 2011-07-31

修正一下,
第二个问题,可以写一个定时脚本,用at或crontab写,执行的内容大致为:
IP1上执行:每隔若干秒判断某个目录下是否有新增文件(可以用du ls 之类的命令sed wc加工后加SEHLL判断),如果有,自动执行ftp传输到ip2 ,然后删除自己或移动到另一个目录下。
IP2上执行:每隔若干秒判断某个目录下是否有新增文件(可以用du ls 之类的命令sed wc加工后加SEHLL判断),如果有,自动执行你需要的脚本,执行完成后,删除自己或移动到另一个目录下。
当然,也可以用find 判断时间的方式对是否有新文件进行判断,就不用再移动目录了。

作者: shujuhuifu802   发布时间: 2011-07-31

相关阅读 更多

热门下载

更多