我想从本地服务器(服务器A)上运行的脚本从远程服务器(服务器B)在特定时间范围内复制一组文件。 我在find中使用-newermt选项来指定我的时间范围。 所以,如果我ssh到远程服务器(服务器B)这工作:传递变量通过ssh查找-newermt选项
find /appl/backup/monsters/green/y.y.y.y/2016-04-26_08-00-01/jelly/ -newermt "2016-04-26 07:40:00" \! -newermt "2016-04-26 07:50:00"
我也得到了规定的时间的文件列表。
但是,如果我试图通过SSH从本地服务器(服务器A)involke这样的:
#!/bin/bash
#
CLUSTER="green"
node="x.x.x.x"
STIME="2016-04-26_08-00-01"
#T1=1461678000
#T2=1461678600
T1="2016-04-26 07:40:00"
T2="2016-04-26 07:50:00"
ssh [email protected] find /appl/backup/monsters/${CLUSTER}/${node}/${STIME}/jelly/ -newermt "$T1" \\! -newermt "$T2"
echo $latest_file
echo SCP Completed.
exit
这给了我一个发现错误:
发现:路径必须先表达:07: 40:00
这样看来,用这种方法发现不喜欢在空间“2016年4月26日7时四十分00秒”
我试图转换为unixtimestamps避免使用如步伐却发现不喜欢那些:
发现:我无法弄清楚如何解释'1461678000' 作为一个日期或时间
我的问题是我必须划定空格字符这个或大括号,我正在尝试一些事情,但完全摸不着头脑: - /任何帮助表示赞赏。
谢谢!
您需要引号才能被* remote *服务器看到,而不是本地引用。用双引号引用* entire *'find'命令,并在当前有双引号的地方使用单引号。 –
就是这样,非常感谢! –