powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Не работает bash скрипт
19 сообщений из 19, страница 1 из 1
Не работает bash скрипт
    #38300070
Captd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Столкнулся с следующей проблемой. Есть скрипт, который проверяет состояние баланса интернет, при запуске данного скрипта вручную он работает, помещаю его в задание cron, он не работает. Подскажите в чём может быть проблема?

Права на скрипт 0777.
В логах пишет:
Jun 17 14:23:01 it1 CRON[4174]: (root) CMD (/home/deg/balansinsys.sh)
Jun 17 14:23:02 it1 CRON[4173]: (CRON) info (No MTA installed, discarding output)
Jun 17 14:23:46 it1 crontab[4206]: (root) BEGIN EDIT (root)
Jun 17 14:23:54 it1 crontab[4206]: (root) REPLACE (root)
Jun 17 14:23:54 it1 crontab[4206]: (root) END EDIT (root)
Jun 17 14:24:01 it1 cron[1007]: (root) RELOAD (crontabs/root)

Скрипт:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
#!/bin/bash

LOGIN=12345
PASSWD=12345

#mkdir /home/it/12121212
wget --no-check-certificate -q -O auth.html "https://abc.insysnet.ru/user/post.pl?act=login&login=${LOGIN}&password=${PASSWD}"

balancehash=`cat auth.html | grep "user.pl?act=balance;"| egrep -o  '(sid=[[:xdigit:]]+)'`

wget --no-check-certificate -q -O balance.html "https://abc.insysnet.ru/user/user.pl?act=balance;${balancehash}"

iconv -f KOI8-R -t UTF-8  -o money.html balance.html

balance=`cat money.html | grep "Текущее состояние счёта:" | egrep -o '[0-9.-]+'| sed '2,$d' `

#rm -f {auth,balance,money}.html

echo ${balance}
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300112
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На которой строчке срубается - конечно же, не скажете?

Да, нередко при запуске из крона бывает необходимо прописывать полные пути к выпоняемым командам и файлам. Или же править PATH.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300231
Captd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если за комментировать все строки, не работает даже с одной строчкой.
Код: php
1.
 wget --no-check-certificate -q -O auth.html "https://abc.insysnet.ru/user/post.pl?act=login&login=${LOGIN}&password=${PASSWD}"] 



Если в скрипте указываешь простую команду например mkdir, то скрипт срабатывает и создает директорию.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300241
Captd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как узнать полный путь до wget?

vkleНа которой строчке срубается - конечно же, не скажете?

Да, нередко при запуске из крона бывает необходимо прописывать полные пути к выпоняемым командам и файлам. Или же править PATH.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300243
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Слово "закомментировать" пишется слитно.
2. Полный путь к wget указывать пробовали?
3. Файл auth.html создается?
4. В кроне настройте отправку уведомлений на почту или добавьте запись вывода скрипта в лог - с высокой вероятностью получите вразумительное сообщение об ошибке.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300244
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CaptdКак узнать полный путь до wget?
Код: sql
1.
whereis имя_команды
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300302
Captd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изменил строку на
Код: php
1.
/usr/bin/wget --no-check-certificate -q -O auth.html "https://abc.insysnet.ru/user/post.pl?act=login&login=${LOGIN}&password=${PASSWD}"] 


результат тот же.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300351
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CaptdИзменил строку на
Код: php
1.
/usr/bin/wget --no-check-certificate -q -O auth.html "https://abc.insysnet.ru/user/post.pl?act=login&login=${LOGIN}&password=${PASSWD}"] 


результат тот же.
1. Какой?
2. Откуда в конце адреса закрывающая квадратная скобка?
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300358
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Captd,

добавьте в начало

#!/bin/bash
exec &> /tmp/balansinsys.sh.log

и покажите /tmp/balansinsys.sh.log после выполнения скрипта из крона
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300384
Captd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ёш,

Добавил данную строчку, в созданном файле balansinsys.log нет записей.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300397
Captd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В итоге файл auth.html не создается, но создается директория 12121212.

На данный момент оставил пока только строки ниже:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#!/bin/bash
exec &> /tmp/balansinsys.sh.log

LOGIN=12345

PASSWD=12345

mkdir /home/it/12121212

/usr/bin/wget --no-check-certificate -q -O auth.html "https://abc.insysnet.ru/user/post.pl?act=login&login=${LOGIN}&password=${PASSWD}"
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300444
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Captdрезультат тот же.Это, наверное, потому, что вы до сих пор не проверили необходимость экранирования спецсимволов и принципиальную возможность выкачать страницу wget-ом?
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300449
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЭто, наверное, потому, что вы до сих пор не проверили необходимость экранирования спецсимволов и принципиальную возможность выкачать страницу wget-ом?Был неправ, погорячился.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300454
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Captd
Код: sql
1.
mkdir /home/it/12121212

Продуктивнее, вероятно, будет добавить -v -o /home/it/wget-cronlog к опциям запуска wget
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300463
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Captd, ок, давайте писать туда всё :) поменяйте #!/bin/bash на #!/bin/bash -x
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38300993
Captd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось :-) .
Нужно было указать полный путь до создаваемых файлов в wget.
Код: php
1.
wget --no-check-certificate -q -O /home/it/auth.html "https://abc.insysnet.ru/user/post.pl?act=login&login=${LOGIN}&password=${PASSWD}"


Получается, если запускаешь скрипт вручную, он создает файл в директории по умолчанию, в которой расположен сам скрипт, а cron не умеет так делать пока ему не укажешь явный путь до создаваемого файла.

Спасибо за помощь.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38302186
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CaptdПолучается, если запускаешь скрипт вручную, он создает файл в директории по умолчанию, в которой расположен сам скрипт, а cron не умеет так делать пока ему не укажешь явный путь до создаваемого файла.Вы, блин, про домашние каталоги почитайте. И зачем они разные.
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38302207
bdmalex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А попробовать прописать переменные окружения в кроне, религия не позволяет ?
...
Рейтинг: 0 / 0
Не работает bash скрипт
    #38302811
Фотография Aliona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я во все скрипты, выполняемые в кроне, добавляю в начало строчку, чтобы не прописывать пути и переменные окружения по 100 раз
автор# get enviroment settings from ".bash_profile" file
. $HOME/.bash_profile
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Не работает bash скрипт
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]