rsync 自動建立目錄的坑點

2021-09-07 16:19:57 字數 779 閱讀 3116

rsync同步檔案有三種模式:

1、把源站路徑下某個檔案,同步到目標路徑。例如rsync -ar /data/1/2/3/a.txt 1.1.1.1:/data/ ,目標機器將自動建立多層目錄存放a.txt。也可以換不同存放目錄,例如rsync -ar /data/1/2/3/a.txt 1.1.1.1:/backup/,得到/backup/data/1/2/3/a.txt。

2、把源站某個目錄,同步到目錄路徑。例如rsync -a /data/1/2/3 1.1.1.1:/data/other/ ,將把目錄3拷貝到目標機器的other目錄下,而3裡邊如果有子目錄,都會跟著一起過去。

3、把源站某個檔案同步到目標檔案。例如例如rsync -a /src/b.txt 1.1.1.1:/data/1/2/3/b.txt,這樣即使目錄不一樣,最後也只是b.txt傳遞過去,而不是把源站的目錄結構傳過去。

第一二種情況,根目錄一般都要先建好,不存在的情況還沒測試過。

第三種情況,目錄路徑很可能就不存在,而這裡就有坑點。rsync只支援建立一層目錄!!!也就是說,上述例子,只允許目錄3不存在,字首/data/1/2/必須先存在。

要解決上述問題,就要用點小技巧,例如:

1、用別的程式建立目錄

2、ssh過去先建立

3、奇技淫巧:rsync -a --rsync-path="mkdir -p /tmp/imaginary/ && rsync" /src/b.txt 1.1.1.1:/data/1/2/3/b.txt。我覺得這個方法類似sql注入的思路,rsync-path用於指定目標機器rsync服務在**。

python自動建立目錄 python自動目錄環境

python自動目錄環境 1 建立工程目錄 2 建立 python 虛擬環境 1 python3.3以上的版本通過venv模組原生支援虛擬環境 apt install python3 venv python3 m venv source bin activate 或者source activate ...

JAVA自動建立多層檔案目錄

某目錄時,因為其上一層目錄即父目錄不存在,會丟擲異常 指定檔案路徑不存在 jdk中提供了建立目錄的兩種方法實現 mkdir 和 mkdirs 第一種,在給定目錄結構path引數下建立指定的目錄,如果path中少了一層目錄沒有建立,則會丟擲異常 filenotfoundexception 第二中,相對...

C FTP 自動建立目錄 上傳檔案

c c 上傳檔案 public static boolean ftpupload string ftppath,string localfile stream.close stream.dispose catch exception e finally req.abort return true 判...