Отправка файлов на FTP через bash-скрипт

На одном проекте мне понадобилось отправлять все текущие, а затем только новые файлы из определенного раздела на сторонний FTP-сервер. Для решения этой задачи я воспользовался следующим bash-скриптом:

#!/bin/bash

# Папка, где хранятся файлы
LOCAL_DIR="./local_files"

# FTP-сервер
FTP_SERVER="ftp.example.com"

# Папка на FTP-сервере
FTP_REMOTE_DIR="/ftp/path/to/folder"

# Файл, который уже отправлен
SEND_FILE_FLAG="send_flag.txt"

# Проверяем, существует ли файл с флагом отправки
if [ ! -f "$SEND_FILE_FLAG" ]; then
touch "$SEND_FILE_FLAG"
# Создаем файл с флагом отправки, если его нет
fi

# Перебираем файлы в папке
for file in $(find "$LOCAL_DIR" -type f -not -path "$SEND_FILE_FLAG" -printf "%f\n"); do
# Получаем путь к файлу
FULL_PATH="$LOCAL_DIR/$file"

# Проверяем, отправлен ли уже файл
if grep -q "$FULL_PATH" "$SEND_FILE_FLAG"; then
    echo "Файл $FULL_PATH уже отправлен"
    continue
fi

# Отправляем файл по FTP
echo "Отправляем файл $FULL_PATH"
curl -u "username:password" --upload-file "$FULL_PATH" "ftp://$FTP_SERVER/$FTP_REMOTE_DIR/$file" # Замените username и password
#curl -u "username:password" --upload-file "$FULL_PATH" "ftp://ftp.example.com/path/to/folder/$file" # Пример с полным путем

# Добавляем отправленный файл в список
echo "$FULL_PATH" >> "$SEND_FILE_FLAG"
done

echo "Обработка завершена"

после правки скрипта я назвал его sendftp.sh и дал права этому скрипту на выполнение. Проверил работу скрипта:

bash sendftp.sh

У меня скрипт нормально отправил файлы на FTP-сервер.

Сделал запуск скрипта каждые 10 минут в crontab:

crontab -e

Нужно обратить внимание, что crontab -l нужно запускать от имени того пользователя, который необходим. Можно, конечно, и от пользователя root запустить.
В crontab сделал следующую запись:

*/10 * * * * /home/exchange/sendftp.sh

где /home/exchange/sendftp.sh — это путь до bash-скрипта

При работе скрипта создается файл send_flag.txt, куда записываются успешно отправленные файлы. Если новый файл, который ещё не был отправлен на FTP-сервер, отсутствует в этом списке, то он отправится скриптом. Если название файла уже присутствует в списке, то этот файл не отправляется. Если удалить файл send_flag.txt, то отправятся все файлы из выбранного раздела и файл send_flag.txt создастся снова.