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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Скрипт не запускается из Cron  (Прочитано 733 раз)

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

Оффлайн ConfusedUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Скрипт не запускается из Cron
« : 07 Апрель 2017, 21:10:21 »
Скрипт не запускается из Crontab.(Через терминал исправно работает, и вообще пробовал другие задачи в Crontab - все работает).
Папку со скриптом добавил в PATH.
Не понимаю зачем, но на всякий случай добавил 2>/dev/null после задачи.
Вот собственно код. Буду очень благодарен!
#!/bin/bash
menu(){
OPTION=$(whiptail --title "Prockeeper" --menu "" 15 60 4 \
"1" "Create task for cron" \
"2" "Edit task" \
"3" "Delete task" \
"4" "Exit" 3>&1 1>&2 2>&3)
}
create_task(){
procname=$(whiptail --title "Prockeeper" --inputbox "Enter the name of process" 10 60 3>&1 1>&2 2>&3)
min=$(whiptail --title "Prockeeper" --inputbox "Enter minutes" 10 60 3>&1 1>&2 2>&3)
hour=$(whiptail --title "Prockeeper" --inputbox "Enter hours" 10 60 3>&1 1>&2 2>&3)
echo "$min $hour * * * /home/username/labs/4/script41.sh $procname &">>task.txt
crontab /home/username/labs/4/task.txt
}
edit_task(){
delete_task
create_task
}
delete_task(){
crontab -l | grep -v "#Prockeeper" > staff.txt
crontab -l | grep "#Prockeeper"
read num
crontab -l | grep "#Prockeeper" > task.txt
sed -n "${num}p" task.txt >> task.txt
sort task.txt > task3.txt 
uniq -u task3.txt > task.txt
cat task.txt >> staff.txt
crontab staff.txt
rm staff.txt task.txt
}
other(){

x=`pidof $a`
if [  "$x" > 0 ]
#procresult=$(ps -eo cmd,pid | grep "$procname" | sed "/grep/d" | sed s/[^0-9]//g)
#if [ -n "$procresult" ];
then
sleep 1m
else
$a &
fi
}
a=$1
if [[ $a == 1 ]]
  then
menu
  case $OPTION in
  1)
create_task
  ;;
  2)
edit_task
;;
3)
delete_task
;;
  esac
else
other
fi

rm /home/username/labs/4/task.txt
exit 0



ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 19/05/2017). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 14 Июль 2019, 04:39:43 от zg_nico »

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #1 : 07 Апрель 2017, 21:14:23 »
Папку со скриптом добавил в PATH.
Если добавил в PATH, то должно запускаться без пути, т.е. из терминала просто твой_скрипт. Если не запускается, тогда твой PATH не работает. Если все нормально, можно с свойствах файла добавить Запускать в терминале.

Оффлайн victor00000

  • Забанен
  • Старожил
  • *
  • Сообщений: 15570
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #2 : 07 Апрель 2017, 21:21:06 »
скрипт 2>/tmp/error.log
Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #3 : 07 Апрель 2017, 21:23:35 »
victor00000, Привет))

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #4 : 07 Апрель 2017, 21:25:14 »
Папку со скриптом добавил в PATH.
а нужно:
#!/bin/bash
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Оффлайн victor00000

  • Забанен
  • Старожил
  • *
  • Сообщений: 15570
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #5 : 07 Апрель 2017, 21:30:39 »
Morisson, пррривет!))
Нельзя друзья, дулу - AnrDaemon видите?
~.o

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #6 : 07 Апрель 2017, 21:37:18 »
cat ~/.bash_profile
#
# ~/.bash_profile
#
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games:$HOME/.local/bin"
export EDITOR=nano
export QT_QPA_PLATFORMTHEME=qt5ct
[[ -f ~/.bashrc ]] && . ~/.bashrc
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx
export- это смотря куда вставляешь. Не везде нужно.

Оффлайн ConfusedUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #7 : 07 Апрель 2017, 21:46:26 »
скрипт 2>/tmp/error.log
Там пусто.

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #8 : 07 Апрель 2017, 21:54:15 »
ConfusedUser, 1) ты PATH куда добавил
2) скрипт просто по названию, без пути запускается?

Оффлайн ConfusedUser

  • Автор темы
  • Новичок
  • *
  • Сообщений: 3
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #9 : 07 Апрель 2017, 22:03:14 »
ConfusedUser, 1) ты PATH куда добавил
2) скрипт просто по названию, без пути запускается?
Написал export PATH=$PATH:/путь к скрипту
Да, запускается без пути.

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #10 : 07 Апрель 2017, 22:12:29 »
Написал export PATH=$PATH:/путь к скрипту
Куда написал.
См. выше, я вставил
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games:$HOME/.local/bin"Это пути к папкам со скриптами.
$HOME/.local/bin- это ~/.local/bin папка
Эту строку втыкай в ~/.profile, например
У меня- в ~/.bash_profile. У тебя такой папки нет.
Например, у меня есть скрипт в ~/.local/bin, называется script
Запускается в терминале:
scriptИ все
У тебя так?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #11 : 07 Апрель 2017, 22:18:27 »
Написал export PATH=$PATH:/путь к скрипту
Да, запускается без пути.
1) Не сочиняй. Какой PATH нужно добавить я написал.
2) Полный путь.
3) Бит "x" (chmod +x /path/to/script.sh)

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #12 : 07 Апрель 2017, 22:30:35 »
3) Бит "x" (chmod +x /path/to/script.sh)
скрипт исполняемый у него, так как в терминале запускается.
ConfusedUser, Чтобы не заморачиваться, в крон вместо всех этих PATH вставь просто /путь/к/твоему/скрипту.sh )

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #13 : 07 Апрель 2017, 23:18:49 »
Morisson,
/путь/к/твоему/скрипту.sh
Нужен, но к PATH не имеет отношения.
Нужно просто указать нормальный PATH, не добавляя туда ничего лишнего.

Оффлайн Morisson

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 4588
    • Просмотр профиля
Re: Скрипт не запускается из Cron
« Ответ #14 : 07 Апрель 2017, 23:58:55 »
Нужен, но к PATH не имеет отношения.
Я в курсе, но так проще, чем гуглить про правильный путь. ;)

 

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