我想從本地服務器(服務器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'命令,並在當前有雙引號的地方使用單引號。 –
就是這樣,非常感謝! –