当前位置: 首页 > 知识库问答 >
问题:

使用日期戳将文件从一台服务器移动到另一台linux

南宫阳焱
2023-03-14

我正在尝试将日志文件从生产环境备份到备份位置。两台服务器都运行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

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

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

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

共有1个答案

宗冷勋
2023-03-14

这可能会派上用场:

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

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

这是将所有a文件夹备份为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 -')

你可以扩展到包括

-name \*somename\* 
-type f/d

或扩展初始tar以包括

exclude="something"
exclude="somethingelse"

如果需要,但这应该复制文件并使用tar retain文件夹结构。希望有帮助

 类似资料:
  • 问题内容: 我需要将Jenkins 2.32版从服务器A移至Jenkins 2.72.1服务器B。两台服务器均具有ubuntu 16.04.3,由于内存问题,我无法安装任何插件,也无法在服务器A中使用该插件。有什么办法可以实现这一目标? 问题答案: 将目录中的所有文件复制到新服务器。 将新服务器指向新目录。 将Jenkins war文件(或servlet容器设置,如果有的话)复制到新机器上并启动它

  • 问题内容: 我目前有一个在云实例上运行的实时Redis服务器,我想将此Redis服务器迁移到新的云实例并将该实例用作我的新Redis服务器。如果是MySQL,我将从旧服务器中导出数据库并将其导入新服务器中。我应该如何使用redis? PS:我不想设置复制。我想将Redis服务器完全迁移到新实例。 问题答案: 通过运行或从命令行将数据库快照保存到dump.rdb中。这将在与Redis服务器相同的文件

  • 问题内容: 我目前在开发PC上使用Jenkins。我将其安装在开发PC上,因为我对该工具的了解有限。因此我在开发PC上对其进行了测试。现在,我对Jenkins感到很满意,可以作为我在构建过程中的长期“合作伙伴”,并希望将此Jenkins“移动”到专用服务器上。 在此之前,我完成了很少的构建,并从每个构建中存档了工件。特别是,对于我来说,内部版本号对于版本控制非常重要。 如何将所有Jenkins信息

  • 我有姜戈问题。我想将来自浏览器或django服务器上的业务逻辑的数据发送到另一个django服务器或只是同一服务器但不同端口来处理请求。我该怎么办?我试着用套接字来实现,但似乎不起作用。

  • 将单个TeamCity构建配置从一个服务器移动到另一个服务器的最佳方法是什么? 我有一个测试基于的TeamCity的本地实例。然后当构建足够成熟时,我在我们的主TeamCity服务器上手动创建它(眼球复制)。

  • 问题内容: 恐怕我已经知道问题的答案了,但是我还是会问: 当有两个MySQL DB服务器时,我可以访问存储在另一个服务器上的数据吗? 换句话说:我能以某种方式做到这一点: 答案真的和“否”一样短吗? 问题答案: 您可以在MySQL中设置联合表来完成您要执行的操作。有一些限制。 http://dev.mysql.com/doc/refman/en/federated-storage-engine.h