2013-05-13 34 views
0

我不確定我的rsync腳本可能出了什麼問題,我用它將數據從一臺服務器記錄到另一臺服務器。問題是,當腳本由cron運行時,它會創建一個額外的目錄,例如域? root?c,它會在目錄名稱末尾添加問號,並將內容複製到這些目錄中,而不是將其複製到域或根目錄(不帶問號)。rsync腳本將內容翻倍,而不是將其添加到正確的目錄中,將問號添加到目錄名稱中

它曾經工作正常,然後我試圖增加帶寬限制,而不是我得到這個問題,這是相當困擾導致用於備份的硬盤加起來相當快,因爲​​現在rsync腳本正在複製和備份所有內容轉換爲新創建的目錄,而不是僅僅將數據添加到應該在的目錄中。

以下是rsync的腳本,我使用:

rsync -a --bwlimit=5000 --delete -e "ssh -p 123 -q" 10.24.124.20:/home/common/ /Zarchiv/plesk1/home/common 
rsync -a --bwlimit=5000 --delete -e "ssh -p 123 -q" 10.24.124.20:/home/mysql/ /Zarchiv/plesk1/home/mysql 
find /Zarchiv/plesk1/home/mysql -type f -ctime +3 -exec rm {} \; 

rsync -a --bwlimit=5000 --delete -e "ssh -p 123 -q" 10.24.124.20:/home/root/ /Zarchiv/plesk1/root 
rsync -a --bwlimit=5000 --delete -e "ssh -p 123 -q" 10.24.124.20:/home/domains/ /Zarchiv/plesk1/domains 


find /Zarchiv/plesk1 -name "access_log" -exec rm {} \; 
find /Zarchiv/plesk1 -name "access_log.processed*" -exec rm {} \; 
find /Zarchiv/plesk1 -name "error_log" -exec rm {} \; 
find /Zarchiv/plesk1 -name "error_log.*" -exec rm {} \; 

非常感謝您的幫助!

回答

4

我有一個rsync備份腳本的類似問題。原來這個腳本里面有DOS風格的換行符(CRLF)。當我使用dos2unix將新行轉換爲UNIX樣式(LF)時,問題消失了。

+0

看來'?'字符是rsync表示字符'\ r'的方式。更簡單的解決方法是在腳本的行尾添加空格,並在腳本中使用rsync命令。這使您可以使用Windows文本編輯器編輯的腳本文件。 – nmgeek 2017-06-20 18:49:33