Копирование новейших файлов

Копирование новейших файлов

У нас запущен скрипт, который собирает отчет, ежемесячно генерируемый на удаленных серверах. Я пытался найти способ собрать последний файл только с удаленных серверов. Найдет ли работа в скрипте или это плохая практика?

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 -rtSSH на сервере в каталоге, чтобы узнать последний измененный файл (по дате последнего изменения, а не по имени файла)

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

Связанный контент