复制最新文件

复制最新文件

我们正在运行一个脚本,它可以获取远程服务器上每月生成的报告。我试图找到一种仅从远程服务器获取最新文件的方法。会在剧本中找到工作吗?或者这是一个不好的做法?

for host in "${hosts[@]}"; do
    scp "$host":"$remote_path" "$local_target_dir"/filename."$host"
done

文件格式=服务器名称_BBC-3.0_2014-06-04_164510_.txt

答案1

您可以ls -rt通过 SSH 在服务器上的目录中运行来查找上次修改的文件(基于其上次修改日期而不是文件名)

fileToCopy=$(ssh "$host" "cd $remote_path && ls -rt | tail -1")
scp "$host":"$remote_path"/"$fileToCopy" "$local_target_dir"/filename."$host"

答案2

我建议找出它来验证您的日期并考虑上次备份,例如:

#!/bin/bash
day=${date +%d}
last_month=${date -d "-1 month" date +%Y-%m-%d}
if [ $day -eq 15]
then
    echo "Is 15th, time to make get last backup!"
    scp -P port user@server:/dir/servername_BBC-3.0_$last_month* destination
fi

相关内容