Tar 个在过去 15 分钟内创建的文件,并将它们通过 SCP 复制到我的本地计算机。 (使用 Cygwin)
Tar files created in last 15 minutes and SCP them to my local machine. (Using Cygwin)
我正在尝试创建一个 shell script
以从文件名以 AppLog 开头的选定文件列表中创建 tar
,创建于过去 15 年内远程服务器上的分钟数。 tar
然后应该 scp
文件到我的本地机器。
我目前的问题是 find
选项获取文件并列出它,但是当创建 tar
时,只有最近的 1 个文件被压缩,即使其中可能有超过 1 个项目find
输出。请在下面查看我的脚本并提出建议。
请注意,我在 Win7 上使用 Cygwin 运行 这个脚本。
#!/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"
啊!最后。知道了。
sshpass -p xxxxxx ssh root@xxx.xxx.xxx.xxx "cd /path/to/dir/with/logs && find . -name 'Applog*.log' -cmin -15 -print | xargs tar cvf /dest/Applog-$Systime.tar.gz
查找命令正在对找到的每个文件执行 tar。因此,由于这个原因,您每次都在覆盖 tar 文件,只有最后一个文件存在。
您需要对完整列表执行 tar,只需执行一次。
cd /path/to/dir/with/logs && find AppLog* -cmin -15 -type f | xargs tar -zcvf /dest/sys01-$Systime.tar.gz
我正在尝试创建一个 shell script
以从文件名以 AppLog 开头的选定文件列表中创建 tar
,创建于过去 15 年内远程服务器上的分钟数。 tar
然后应该 scp
文件到我的本地机器。
我目前的问题是 find
选项获取文件并列出它,但是当创建 tar
时,只有最近的 1 个文件被压缩,即使其中可能有超过 1 个项目find
输出。请在下面查看我的脚本并提出建议。
请注意,我在 Win7 上使用 Cygwin 运行 这个脚本。
#!/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"
啊!最后。知道了。
sshpass -p xxxxxx ssh root@xxx.xxx.xxx.xxx "cd /path/to/dir/with/logs && find . -name 'Applog*.log' -cmin -15 -print | xargs tar cvf /dest/Applog-$Systime.tar.gz
查找命令正在对找到的每个文件执行 tar。因此,由于这个原因,您每次都在覆盖 tar 文件,只有最后一个文件存在。
您需要对完整列表执行 tar,只需执行一次。
cd /path/to/dir/with/logs && find AppLog* -cmin -15 -type f | xargs tar -zcvf /dest/sys01-$Systime.tar.gz