2013-08-07 85 views
3

我想將文件從遠程服務器複製到本地服務器。問題是:我只想從昨天覆制文件。 遠程服務器正在寫入日誌文件,並且在23:59,日誌記錄將其壓縮到文件[name] _ [date] .log.gz。早晨6點,本地服務器上的cronjob需要複製先前從遠程服務器創建的文件。有誰知道如何做到這一點?昨天的scp文件

問候, 亞歷

回答

10

可以使用這樣的腳本

for i in `find /interface/outbound/Web -type f -ctime -1` 
do 
scp $i [email protected]$destination_server:/destination_directory/ 
done 
特別

命令找到,例如以下特點:

find . -ctime -1 # which are created less than 1 day ago from currrent folder. 
find . -ctime +2 # finds files which are created older than 2 days from currrent folder. 

其中ctime是創造時間。它也可以使用修改時間mtime這樣:

find . -mtime 0 # find files modified between now and 1 day ago 
find . -mtime -1 # find files modified less than 1 day ago 
find . -mtime 1 # find files modified between 24 and 48 hours ago 
find . -mtime +1 # find files modified more than 48 hours ago 

更多信息man find

編輯:

已經從遠程到本地,你可以使用類似相同的行爲:

latest_file=`ssh [email protected]_server find /pathtoDir -type f -ctime -1` 
/usr/bin/scp [email protected]_server:$latest_file /local_dir 
echo SCP Completed. 

此刻我還沒有Unix環境ronment做一些測試。

+0

嗨,謝謝你的回答。您正在測試本地服務器上的文件。我需要在遠程服務器上查找昨天的文件。 localServer(腳本運行的地方)應該從遠程服務器獲取昨天的文件。 – AlexWerz

+0

我編輯了我的答案。 – Oscerd

+0

如果此解決方案適用於您,請不要忘記爲正確答案投票 – Oscerd