Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Cron не выполняет рабочий скрипт  (Прочитано 907 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alewteena

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Привет всем!
Назначила расписание для юзера ngw(только он доступен мне)
Помогите, пожалуйста, разобраться, почему не отрабатывают задания в crontab:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=ngw
HOME=/

*/5 * * * * ngw /home/ngw/ngw/ssh_tunnel.sh
Отдельно скрипт /home/ngw/ngw/ssh_tunnel.sh из консоли выполняется, виден результат(порты появляются на слушании, видно из netstat -l)
Скрипт ssh_tunnel.sh:
TUNCMD1='/usr/bin/ssh -f -N -L 10.100.13.33:1818:192.168.50.2:8080 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD1" &>/home/ngw/sh_log.txt || $TUNCMD1
TUNCMD2='/usr/bin/ssh -f -N -L 10.100.13.33:6464:192.168.50.2:6460 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD2" &>/home/ngw/sh_log.txt || $TUNCMD2
TUNCMD3='/usr/bin/ssh -f -N -L 10.100.13.33:2222:192.168.50.1:80 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD3" &>/home/ngw/sh_log.txt || $TUNCMD3
TUNCMD4='/usr/bin/ssh -f -N -L 10.100.13.33:8090:192.168.50.1:8090 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD4" &>/home/ngw/sh_log.txt || $TUNCMD4

При этом в syslog(less /var/log/syslog | grep CRON):
Jun 21 11:00:01 monitoring-vl CRON[7782]: (ngw) CMD (ngw /home/ngw/ngw/ssh_tunnel.sh)
Jun 21 11:00:01 monitoring-vl CRON[7781]: (CRON) info (No MTA installed, discarding output)
Вроде как нет ошибок, кроме discarding output для отправлений mail... (Или это влияет?)
Заранее спасибо всем откликнувшимся!

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3487
  • Ubuntu 22.04 х64
    • Просмотр профиля
Re: Cron не выполняет рабочий скрипт
« Ответ #1 : 21 Июня 2018, 11:22:45 »
Alewteena,
1) я не увидел в заголовке самого скрипта
Код: (bash) [Выделить]
#!/bin/bash
2) И кто вам такой синтаксис подсказал заданий в кроне?
Синтаксис: "минуты" "часы" "день" "месяц" "день недели" "комманда"
А потому:
а) допишите хедер в скрипт
б) или используйте конструкцию su ngw -c "/home/ngw/ngw/ssh_tunnel.sh" (если крон под рутом) или просто добавьте в крон нужного пользователя без всяких ngw
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн Alewteena

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Cron не выполняет рабочий скрипт
« Ответ #2 : 21 Июня 2018, 11:47:54 »
Урра! Работает! Спасибо огромное
Все из-за строчки #!/bin/bash
Скрипт:
#!/bin/bash
TUNCMD1='/usr/bin/ssh -f -N -L 10.100.13.33:1818:192.168.50.2:8080 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD1" &>/home/ngw/sh_log.txt || $TUNCMD1
TUNCMD2='/usr/bin/ssh -f -N -L 10.100.13.33:6464:192.168.50.2:6460 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD2" &>/home/ngw/sh_log.txt || $TUNCMD2
TUNCMD3='/usr/bin/ssh -f -N -L 10.100.13.33:2222:192.168.50.1:80 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD3" &>/home/ngw/sh_log.txt || $TUNCMD3
TUNCMD4='/usr/bin/ssh -f -N -L 10.100.13.33:8090:192.168.50.1:8090 ngw@10.100.13.33'
/usr/bin/pgrep -f "$TUNCMD4" &>/home/ngw/sh_log.txt || $TUNCMD4
crontab -l

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=ngw
HOME=/

*/5 * * * *  /home/ngw/ngw/ssh_tunnel.sh

Спасибо еще раз!

 

Страница сгенерирована за 0.017 секунд. Запросов: 20.