Копирование / Резервное копирование всех файлов, кроме самого последнего с помощью scp

У меня есть программа, которая работает на нескольких машинах и которая записывает результаты в ~/data/machine_name/ , каждый раз, когда файл результатов превышает 1 ~/data/machine_name/ , программа переходит и записывается в новый файл. (Все машины имеют одну и ту же структуру каталогов).

Я хочу сделать автоматическое резервное копирование этих файлов в случае сбоя одного из компьютеров. Зная, что самый последний доступный файл – тот, который написан программой, и, следовательно, я бы скопировал все старые файлы, кроме этого. При следующем запуске задания резервного копирования будет включен последний файл, отсутствующий в предыдущей резервной копии, и так далее.

Сейчас я использую только простую команду scp , которая копирует даже файл, открытый удаленной машиной.

В любом случае, для этого? утилиту командной строки или скрипт для такой работы?

  • scp (v4) копирование с удаленного на несколько локальных имен файлов
  • ssh / scp работает, но rsync просто постоянно говорит «нет»,
  • заставить scp вести себя так, как предполагается (удаленная программа копирования файлов)
  • Как копировать только файлы папки (включая файлы вложенных папок), но не сама папка в оболочке
  • Разница в разрешении хоста ssh / scp и достижении сети
  • Как выполнить rsync только определенный список файлов в том же месте на другом сервере
  • Перенесите файл с Android на ПК (не в той же сети)
  • TCL Script - ожидается, когда scp будет выполнен
  • One Solution collect form web for “Копирование / Резервное копирование всех файлов, кроме самого последнего с помощью scp”

    Вы можете использовать утилиту резервного копирования rsync с параметром --exclude :

     /usr/bin/rsync -avz --exclude='$EXCLUDED_DIR_OR_FILE' -e ssh /your/base/folder \ user@host_or_ip:/target/machine/path >> /optional/log/file.log 

    Вы можете определить переменную $EXCLUDED_DIR_OR_FILE , найдя последний обновленный файл. Существует несколько способов найти последний обновленный файл в данном каталоге, один из которых использует утилиты ls и awk :

     ls -lrt | awk '{ f=$NF }; END{ print f }' 

    Обратите внимание, что эта команда печатает последнее измененное file name а не полный путь к файлу.

    Linux и Unix - лучшая ОС в мире.