Для фона, У меня есть файлы, которые мне нужно транспортировать между серверами, и для этого у меня была попытка написать скрипт bash, который использует wget для извлечения только самых новых файлов и wput длязагрузить их.
Проблема заключается в том, что я использую wget с флагом -N, и пока он загружает самый последний файл, это также означает, что когда я использую wput, я загружаювсе файлы и не только самые новые. Сложнее становится то, что мне приходится загружать в определенный каталог, а после загрузки они перемещаются в другой, поэтому я не могу использовать то, что я загружал в прошлом, в качестве руководства.
Что бы я хотел - это загружать только самые новые файлы, которые были загружены, и если ничего не было загружено, то для выхода из скрипта.
Любая помощь в том, как я мог бы добиться этого,с благодарностью, мой текущий код ниже:
#!/bin/bash
# Redirect stdout ( > ) into a named pipe ( >() ) running "tee"
exec > >(tee -i update_logfile.txt)
exec 2>&1
today="$(date +'%d%m%Y')"
printf "Record load started: %s\n" "$today"
echo "get records"
wget -N ftp://[user1]:[pass1]@[ftp-server-1]/*.* -P /path/to/temp/
echo "put records"
wput --basename=/path/to/temp/ -u /path/to/temp/*.* ftp://[user2]:[pass2]@[ftp-server-2]/update/
echo "upload finished"
mail -s "Upload" my_email@domain.com < update_logfile.txt