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

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

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

Формат файла = servername_BBC-3.0_2014-06-04_164510_.txt

2 Solutions collect form web for “Копирование новейших файлов”

Вы можете запустить ls -rt через SSH на сервере в каталоге, чтобы узнать последний измененный файл (на основе его последней даты модификации вместо имени файла)

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

Я предлагаю найти подтверждение вашей даты и учитывать последнюю резервную копию, например:

 #!/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 
  • Поиск файлов по дате изменения
  • Получение файлов для текущей даты в Linux?
  • Получить строки между двумя временными метками из файла
  • Удалить подкаталоги с YYYYMMDD с именем старше N дней
  • Изменение измененной даты файла в зависимости от даты в имени файла
  • Как найти последние n новых файлов для каждой из нескольких каталогов
  • Bash: сортировка элементов массива по дате файла
  • Почему debugfs не показывает crtime в наносекундах?
  • Странное форматирование даты в сценарии bash
  • Tweak perl скрипт для чтения человеком dmesg
  • как запустить время запуска команды и время окончания команды в txt-файле, используя cygwin
  • Linux и Unix - лучшая ОС в мире.