gpt4 book ai didi

linux - 过去 15 分钟创建的 Tar 文件并将它们 SCP 到我的本地计算机。 (使用 Cygwin)

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:31 27 4
gpt4 key购买 nike

我正在尝试创建一个 shell 脚本,以从文件名以 AppLog 开头的选定文件列表中生成 tar,这些文件是在远程服务器上最近 15 分钟内创建的。然后,tar 应该将文件 scp 到我的本地计算机。

我当前的问题是 find 选项获取文件并列出它,但是当创建 tar 时,仅压缩最近的 1 个文件,即使 find 输出中可能有超过 1 个项目。请查看我下面的脚本并提出建议。

请注意,我使用 Cygwin 在 Win7 上运行此脚本。

#!/bin/bash
Systime=`date +%F-%H%M%S`
sshpass -p xxxxxx ssh root@xxx.xxx.xxx.xxx "cd /path/to/dir/with/logs && find AppLog* -cmin -15 -type f -exec tar -zcvf /dest/sys01-$Systime.tar.gz {} \;"
sshpass -p xxxxxx scp root@xxx.xxx.xxx.xxx:/dest/sys01-$Systime.tar.gz .
sshpass -p xxxxxx ssh root@xxx.xxx.xxx.xxx "rm -rf /dest/sys01-$Systime.tar.gz"

最佳答案

find 命令正在对找到的每个文件执行 tar。因此,您每次都会覆盖 tar 文件,因此只有最后一个文件存在。

您只需使用完整列表执行 tar 一次。

cd /path/to/dir/with/logs && find AppLog* -cmin -15 -type f | xargs tar -zcvf /dest/sys01-$Systime.tar.gz 

关于linux - 过去 15 分钟创建的 Tar 文件并将它们 SCP 到我的本地计算机。 (使用 Cygwin),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50781883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com