Backup
通過 scp 複製/備份除最新文件之外的所有文件
我有一個在多台機器上執行的程序,它將結果寫入
~/data/machine_name/
,每次結果文件超過 1MB 時,程序繼續前進並寫入一個新文件。(所有機器都具有相同的目錄架構)。我想自動備份這些文件,以防其中一台機器出現故障。知道最近訪問的文件是程序正在寫入的文件,因此,我將複製除此之外的所有舊文件。下次啟動備份作業時,將包含上次備份中省略的最新文件,依此類推。
現在我只使用一個簡單的
scp
命令,它甚至可以複製遠端機器打開的文件。有沒有辦法做到這一點?用於此類工作的命令行實用程序或腳本?
您可以使用帶有選項
rsync
的備份實用程序:--exclude
/usr/bin/rsync -avz --exclude='$EXCLUDED_DIR_OR_FILE' -e ssh /your/base/folder \ user@host_or_ip:/target/machine/path >> /optional/log/file.log
您可以
$EXCLUDED_DIR_OR_FILE
通過查找最後更新的文件來確定變數。有幾種方法可以在給定目錄中查找最後更新的文件,其中一種方法是一起使用ls
和awk
實用程序:ls -lrt | awk '{ f=$NF }; END{ print f }'
請注意,此命令列印最後修改
file name
的而不是文件的完整路徑。