Перейти к содержимому

Скрипт LFTP для копирования данных за вчерашний день

Заказчик поставил задачу: хотим получать все аудио данные по ftps за вчерашний день, сжатые в tar и с суммой md5.

#!/bin/bash

###### объявляем переменные
# За вчерашний день
export YESTERDAY=`TZ=GMT+24 date +%Y-%m-%d`
# Хост куда копируем
export HOST="191.1.1.1"
# Имя пользователя
export USER="ftpsUser"
# пароль
export PASSWORD="2021ftps"
# Текущая дата
export DATE=`date +%m.%d.%Y`
# Лог об отчете
export LOGFILE="/var/log/lftp-$DATE.log"
# Временная директорию    
export LOCALDIR="/tmp/cpdata/"

# Переходим в директорию с аудио файлами
cd /Records/recordings/
# Поиск по директорию и копирование файла в временную папку
find . -name "${YESTERDAY}*" -exec cp '{}' /tmp/cpdata \;
# переходим в директорию 
cd /tmp/cpdata
# выводим список фалов и записываем результат. Сделал для отладки. 
ls >> /var/log/cp/$DATE-copy-files.log
# сжимаем файлы и делаем md5
tar -cvpf ${YESTERDAY}.tar /tmp/cpdata/ | xargs -I '{}' sh -c "test -f '{}' && md5sum '{}'" | tee ${YESTERDAY}.md5 && rm -rf /tmp/cpdata/*.mp3
# переходим директорию и смотрим и записываем список файлов. делал для отладки. 
cd /tmp/cpdata
ls >> /var/log/cp/$DATE-out.log
# засыпаем на 5 секунд
sleep 5

# подключаемся и отправляем файлы из папки.
lftp -u $USER:$PASSWORD $HOST << EOF
mput /tmp/cpdata/*.tar.
mput /tmp/cpdata/*.md5.
exit
EOF
sleep 5
# удаляем временные файлы
rm -rf /tmp/cpdata/*.tar
rm -rf /tmp/cpdata/*.md5
Метки: