将带有日期戳的文件从一台服务器移动到另一台linux



我正试图将日志文件从生产备份到备份位置。两台服务器都在运行Linux。当我试图放入时间戳时,我在目标服务器中遇到了一个问题:

我已经试过了;

logpath="/test/MN/PRD/cpp/MNPRD/cdci_logs/MNCDCI/"
backuppath="/test/MN/UAT/cpp/testmove"
time_stamp=$(date +%Y_%m_%d)
scp -r "${logpath}" user@servername:"${backuppath}/${time_stamp}"  
cd "${logpath}"
find . -ctime +1 -type f |xargs rm

文件被移到另一个服务器中,并创建了一个带有日期戳的文件夹,其他所有内容都被转储到那里,而没有适当的目录结构。我需要在datestamp目录之后维护相同的目录结构。我怎样才能做到这一点?

编辑:我需要在目标路径中有原始路径的最后文件夹名,例如:

/test/MN/UAT/cpp/testmove/timestampdir/MNCDCI

这可能会派上用场:

https://github.com/vahidhedayati/definedscp/blob/master/elapsed-scp.sh

要做你正在尝试做的事情,你可以尝试这样的

这是将所有一个文件夹备份为tar命令,然后ssh到b文件夹中的远程主机/tmp并提取它…

(cd /tmp/; tar -cvzf - a)|(ssh REMOTE_HOST 'cd /tmp/; tar -xvzf -')

上面是tmp中的一个文件夹,它直接从localhost复制到remotehost/tmp文件夹

编辑以添加您可以使用的额外内容,未经测试但应该有效。

logpath="/test/MN/PRD/cpp/MNPRD/cdci_logs/MNCDCI/"
backuppath="/test/MN/UAT/cpp/testmove"
time_stamp=$(date +%Y_%m_%d)
backup_folder=$backuppath/$time_stamp
    (find $logpath -mtime +1 -exec tar -cvzf - {} ;)|(ssh REMOTE_HOST 'mkdir -p $backup_folder; cd $backup_folder; tar -xvzf -')

您可以将fine扩展为包括

-name *somename* 
-type f/d

或扩展初始焦油以包括

exclude="something"
exclude="somethingelse"

如果需要的话,但这应该随后复制文件并使用tar保留文件夹结构。希望它能帮助

相关内容

最新更新