[置顶] rsync 匹配通配符 * 失败 link_stat failed: No such file or directory
2015-02-04 17:25
375 查看
rsync -avP /home/map/mongodb2.4.6/data/road140403* map@hz12:/home/map/users/wangxin/script/tmp
上面的命令执行的时候不会报任何错误,并正常的同步数据,此时会弹出交互界面,并提示要输入
hz12服务器的密码,但如果这种操作放在脚本里就要expect来支持,如果放在expect里面的话会报
如下错误:
rsync: link_stat
"/home/map/mongodb/data/road140403*" failed: No such file or directory (2)
具体情况如下:
刚开始的时候我以为是rsync无法匹配通配符*才导致的。
后来发现不是该问题,是由于expect里面无法匹配 * 才导致的。
解决办法:
在spawn 后面加上 bash -c "command"
这样expect就认出了通配符*。
脚本如下:
#!/bin/bash
function func_expect {
ExpEnv=`which expect`
$ExpEnv -c "
set timeout -1;
spawn bash -c \"$1\";
expect {
\"(yes/no)?\" {send \"yes\n\";expect \"assword:\";send \"$2\n\"}
\"assword:\" {send \"$2\n\"}
eof {exit 0;}
}
expect eof"
}
{
/home/map/mongodb2.4.6/bin/mongod --shutdown --dbpath=/home/map/mongodb2.4.6/data
pwd="******"
cmd1="rsync -avP /home/map/mongodb2.4.6/data/road140403* map@hz12:/home/map/users/wangxin/script/tmp"
func_expect "$cmd1" "$pwd"
PS:为什么在spawn处用\" $1\" 而不是"$1" ?
因为在上面已经有"了,此处用 \ 转义。
上面的命令执行的时候不会报任何错误,并正常的同步数据,此时会弹出交互界面,并提示要输入
hz12服务器的密码,但如果这种操作放在脚本里就要expect来支持,如果放在expect里面的话会报
如下错误:
rsync: link_stat
"/home/map/mongodb/data/road140403*" failed: No such file or directory (2)
具体情况如下:
刚开始的时候我以为是rsync无法匹配通配符*才导致的。
后来发现不是该问题,是由于expect里面无法匹配 * 才导致的。
解决办法:
在spawn 后面加上 bash -c "command"
这样expect就认出了通配符*。
脚本如下:
#!/bin/bash
function func_expect {
ExpEnv=`which expect`
$ExpEnv -c "
set timeout -1;
spawn bash -c \"$1\";
expect {
\"(yes/no)?\" {send \"yes\n\";expect \"assword:\";send \"$2\n\"}
\"assword:\" {send \"$2\n\"}
eof {exit 0;}
}
expect eof"
}
{
/home/map/mongodb2.4.6/bin/mongod --shutdown --dbpath=/home/map/mongodb2.4.6/data
pwd="******"
cmd1="rsync -avP /home/map/mongodb2.4.6/data/road140403* map@hz12:/home/map/users/wangxin/script/tmp"
func_expect "$cmd1" "$pwd"
PS:为什么在spawn处用\" $1\" 而不是"$1" ?
因为在上面已经有"了,此处用 \ 转义。
相关文章推荐
- 启动RSYNC服务时出现cannot open shared object file: No such file or directory
- rsync: chroot No such file or directory (2)
- [置顶] 【linux下 scrapy 安装】Python.h: No such file or directory
- [置顶] shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
- Linux下安装NS2时遇到couldn't execute "nam": no such file or directory 解决办法
- Error处理:/bin/bash^M: 坏的解释器: 没有该文件或目录(bad interpreter: No such file or directory)
- WTL工程:fatal error C1083: 无法打开包括文件:“atlapp.h”: No such file or directory 的解决方法
- CentOS 修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
- 修复/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory问题
- linux下/dev/dsp:No such file or directory解决方法
- linux可执行文件执行时提示No such file or directory(docker环境中运行的ubuntu镜像)
- libdb2.so.1: cannot open shared object file: No such file or directory
- oracle 安装过程中遇到的问题1: libXp.so.6: cannot open shared objectfile: No such file or directory
- C:\Python27\python.exe: can't open file '2.py': [Errno 2] No such file or directory
- /bin/rm: cannot remove `libtoolT’: No such file or directory 解决方案
- Redmine访问SVN版本库报错!No such file or directory - svn list --xml ""@HEAD
- nginx报错 [error] open() “/usr/local/var/run/openresty.pid” failed (2: No such file or directory)
- Cocos2d-x 3.0 beta 中加入附加项目,解决无法打开包括文件:“extensions/ExtensionMacros.h”: No such file or directory”
- Linux sh脚本异常:bad interpreter: No such file or directory
- Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0