@AlexeyMish

Почему cron не выполняет скрипт?

Вручную скрипт работает как надо, через крон ругается
Output from command /usr/local/bin/smg1016_cfg_copier # ..
/usr/local/bin/smg1016_cfg_copier: 23: /usr/local/bin/smg1016_cfg_copier: Syntax error: "(" unexpected

#!/bin/bash
### BEGIN INIT INFO
# Provides:  iptoftp
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description:
# Description:
### END INIT INFO
 
ARRAY=(
        172.19.252.190
        172.19.252.191)
ELEMENTS=${#ARRAY[@]}
for (( i=0;i<$ELEMENTS;i++)); do
 
host=${ARRAY[${i}]}
 
port="21" # Порт, к которому подключаемся
user="backup" # Имя пользователя на ftp-сервере под, кторым будем логиниться
pass="backup" # Пароль пользователя на ftp-сервере, к которому подключаемся
file="cfg.yaml" # Путь локального файла, который подлежит отправке с ftp-сервера,
DATE_DIR=$(date +%Y-%m-%d)
ufile="/mnt/stream/Eltex/"$host"/"$DATE_DIR"_"$file # Путь и имя файла на, где будем сохранять наш файл
 
# Процедура подключения к ftp-серверу и отправка файла.
/usr/bin/ftp -n $host $port <<INPUT_END
quote USER $user
quote PASS $pass
bin
cd mnt
ls
prompt
get $file $ufile
quit
INPUT_END
 
done
exit 0
  • Вопрос задан
  • 510 просмотров
Решения вопроса 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Потому что #!/bin/bash в шабанге писать нужно, раз уж это bash, а не pure sh.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
Можете строчку из cron выложить?
У меня ваш скрипт отрабатывает.

/usr/local/bin/smg1016_cfg_copier это сам скрипт лежит?
Ответ написан
Endru9
@Endru9
Админ Linux
cd mnt

зачем постоянный переход в mnt? тем более путь относительный:
тогда уж лучше так:
cd /mnt
get $file $ufile

file находится в /mnt/ ? ибо в переменной только его имя, а директория берется всегда текущая, если не указан абсолютный путь до файла.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы