[ОТВЕТИТЬ]
30.08.2014 19:51
baggio
 
вообщем делаем задание в кроне через веб интерфейс... в данном случии вот такое
Цитата:
#!/bin/sh
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
NAME=`/bin/date '+%Y%m%d'`
nice a -mx5 -ssc /mnt/200GB/BackUp/1c/1c$NAME.7z @/mnt/200GB/BackUp/listfile_1c.txt
find /mnt/200GB/BackUp/1c -name "*.7z" -mtime +7 -delete
nice 7za a -mx5 -ssc /mnt/200GB/BackUp/obmen/ObmenForMag$NAME.7z @/mnt/200GB/BackUp/listfile_obmenformag.txt
find /mnt/200GB/ObmenForMag -name "*.7z" -mtime +7 -delete
cp -av /mnt/200GB/BackUp/obmen/*$NAME.7z /mnt/stora/BackUP/obmen
find /mnt/stora/BackUP/obmen -name "*.7z" -mtime +7 -delete
cp -av /mnt/200GB/BackUp/1c/*$NAME.7z /mnt/stora/BackUP/1c
find /mnt/stora/BackUP/1c -name "*.7z" -mtime +7 -delete
Естественно что данный скрипт при выполнении из консоли и в SSH отрабатывает нормально...
В веб интерфейсе Nas4free нажимаем "run now" - скрипт прекрасно отрабатывает... всё дело как говорится в шляпе :)
теперь оставляем на ночь... и...
Правильно нигуя не работает... т.е. с утра в в папках где лежат архивы пусто...
не беда щя разберемся...
наверное в /etc/crontab косяк... проверям всё нормально...
смотрим системные логи... тоже тишина.. в момент когда должен выполнятся скрипт... тишина как на кладбище...
ну долго мучать не буду...
оказывается эта "ПолуОС", несмотря на то что при нажатии на "run now" и отрабатывает.. но требует указания точных путей до запускаемых модулей...
почему в "ПолуОС" тишина в логах... ну хз... это как тут принято говорить... неинтуитивно мне непоятно или как то так...
вообщем работаюший вот такой

Цитата:
#!/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
HOME=/var/log

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
NAME=`/bin/date '+%Y%m%d'`
nice /usr/local/bin/7za a -mx5 -ssc /mnt/200GB/BackUp/1c/1c$NAME.7z @/mnt/200GB/BackUp/listfile_1c.txt
find /mnt/200GB/BackUp/1c -name "*.7z" -mtime +7 -delete
nice /usr/local/bin/7za a -mx5 -ssc /mnt/200GB/BackUp/obmen/ObmenForMag$NAME.7z @/mnt/200GB/BackUp/listfile_obmenformag.txt
find /mnt/200GB/ObmenForMag -name "*.7z" -mtime +7 -delete
cp -av /mnt/200GB/BackUp/obmen/*$NAME.7z /mnt/stora/BackUP/obmen
find /mnt/stora/BackUP/obmen -name "*.7z" -mtime +7 -delete
cp -av /mnt/200GB/BackUp/1c/*$NAME.7z /mnt/stora/BackUP/1c
find /mnt/stora/BackUP/1c -name "*.7z" -mtime +7 -delete
30.08.2014 20:04
OlegON
 
а помнишь, что я тебе говорил? надо разобраться, почему системное окружение пустое. вот, пожалста, налетел в другом месте.
у тебя на уровне системы ни локаль, ничего другого, в т.ч. PATH не выставлено. Ты ж плюешь на советы и делаешь все через костыли...
Если уж так хочется костылей - запиши инициализационные параметры в каком-то отдельном общем скрипте и вызывай его в каждом своем скрипте. Иначе либо забудешь что-то, либо потом менять в сотне мест придется.
30.08.2014 20:12
baggio
 
Цитата:
OlegON а помнишь, что я тебе говорил? надо разобраться, почему системное окружение пустое. вот, пожалста, налетел в другом месте.
у тебя на уровне системы ни локаль, ничего другого, в т.ч. PATH не выставлено. Ты ж плюешь на советы и делаешь все через костыли...
Если уж так хочется костылей - запиши инициализационные параметры в каком-то отдельном общем скрипте и вызывай его в каждом своем скрипте. Иначе либо забудешь что-то, либо потом менять в сотне мест придется.
понимаешь...
я всё понимаю... но этому дистрибутиву 100 лет в обед... мало того он СПЕЦИАЛИЗИРОВАННЫЙ и должен без танцев с бубном выполнять простейшие вещи...
я честно каждый раз пытаюсь использовать свободный софт... и честно каждый раз натыкаюсь вот на разные детские грабли....
ну должны такие вещи работать из коробки...
оно виш как... понятно что можно перехерачить дистриб всё поправить и сделать конфетку...
но через полгода накомитят еще чего нибудь и моя фигня перестанет работать...
кроме того я расчитываю на то что дистриб придется обновлять... а чем больше я там изменений сделаю тем ...
ну ты понял...
30.08.2014 21:36
OlegON
 
погоди, мы опять переходим к управлению мыслями?
именно, что дистрибутив специализированный, и из коробки работает то, для чего он специализированный... а ты полез в командную строку и что-то требуешь... ну, попробуй на айфоне такое же запустить... там, кстати, ОС ближе к BSD, чем Linux.
И изменения все легко переживают обновления, если выносить их отдельно в директорию и потом ее бекапить...
30.08.2014 21:47
baggio
 
ах... ну если CRON для которого есть специальная страничка в вебе.. это командная строка... тогда да...
30.08.2014 22:03
OlegON
 
а запускаешь ты из этого крона святой дух? :)
30.08.2014 22:47
baggio
 
Цитата:
OlegON а запускаешь ты из этого крона святой дух? :)
не важно что я из него запускаю...
1. Не читается переменные окружения пользователя... нужно указывать...
2. не передаются переменные PATH что на мой взгляд просто необходимое условие...
3. При выполнении скрипта из CRON которое по какимто причинам не выполняется - тишина в логах... что на мой взгляд тоже сильный косяк...
всё перечисленное не имеет к моим допилам никакого отношения...
31.08.2014 08:49
OlegON
 
Давай еще раз вернемся к тому, что твои требования "на мой взгляд" в свете того, что ты в этой системе еще полный нуб, значат очень мало.
Необходимо разобраться в системе как следует, чтобы ее потом критиковать.

Что ты запускаешь, это как раз тут самое основное. И что твой кривой скрипт работает криво, извини, виноват только ты :)

Еще раз, либо ты работаешь с командным интерпретатором (bash, csh, не суть) и ставишь нормальную систему, либо тебе вечно не хватает каких-то кусочков, поскольку ты работаешь за пределами того, под что заточена система. Кроме того, если ты написал скрипт, который должен вернуть крону ошибку, то верни эту ошибку...

Поясню логику на примере.
запускаешь в скрипте
Код:
7z
cp
и пусть 7z по каким-то причинам упал. Упал ли весь скрипт? Нет. Выполнился ли он - да. Код возврата 0, о чем тебе и сообщает крон. Ты честно и откровенно написал в скрипте, что код возврата из команды тебя не интересует.

Код возврата - "$?", т.е. если ты хочешь выйти при обломе 7z
Код:
7z
if [ "$?"-ne 0]; then echo "7z упал"; exit $?; fi
Если ты хочешь, чтобы скрипт прерывался сразу, как только команда вышла с ненулевым кодом, почитай про
Код:
set -e
(это для bash)

Кроме того, в нормальной системе настроена почта, т.е. крон по умолчанию шлет куда-то вывод команд (у тебя это где-то складывается в системе, попробуй набрать mail, хотя для куцей системы не знаю), соответственно, обычно команды ничего не выводят (можно перенаправлять в &>/dev/null), а вот если случается ошибка, она приходит на почту.

Все очень грамотно, удобно и интуитивно.
31.08.2014 14:45
baggio
 
Цитата:
OlegON Давай еще раз вернемся к тому, что твои требования "на мой взгляд" в свете того, что ты в этой системе еще полный нуб, значат очень мало.
Давай начнем с того что неважно нуб я в какойто системе или нет...
Давай начнем с того что если хоть какаято задача запланированна в любом планировщике любой сситемы в логе этой системы должно быть отметка о том что задание начинает выполнятся...
что в команде - не важно... итог и результат тоже...
если планировщик начинает выполнять будь добр напиши... не получилось? напиши...
а все эти команды и скрипты конкретно к данным претензиям совсем не относятся...
претензии наверное к криворукому зубному врачу...
31.08.2014 17:09
OlegON
 
Ну все кроны лог пишут, может ты не в том логе смотришь... Я как-то устал тебе повторять, что ты вылез за пределы куцей системы, а, возможно, что-то уже и поломал в ней.
31.08.2014 17:13
baggio
 
да не ладно... т.е. когда крон запускает задание с полными путями он в лог пишет...
когда меняешь ему конфигурацию и он ребутится перечитывая crontab он в лог пишет...
а когда задание кривое и почемуто не выполняется он считает что писать ничего не стоит...

Вот ты упертый то...
давай по порядку ты считаешь что планировщик при неправильной команде всё равно чтото в лог писать должен? ты запустил.. или запустил не запустилось... или запускаю запланированную задачу такуето.. согласен?

да мы про системынй лог говорим естественно...
31.08.2014 17:25
OlegON
 
что есть неправильная команда? в твоей куцей системе - не знаю, у меня либо при перечитывании кронтаба жалуется, что хрень написал, либо говорит, что вот, запускаю, а потом почтой присылает, что ек, ошибка...
31.08.2014 17:39
baggio
 
Цитата:
OlegON что есть неправильная команда? в твоей куцей системе - не знаю, у меня либо при перечитывании кронтаба жалуется, что хрень написал, либо говорит, что вот, запускаю, а потом почтой присылает, что ек, ошибка...
вот ты упертый...
ну давай экспереминтировать...
создаешь задание в кроне например на 18.00 - благо не долго останось...
в команде указываешь скрипт - любой исполняемый файл script.sh
в нем, в скрипте пишет
"hren kotoraya ne diljna rabotat"
после просьба выложить лог системы в момент предпологаемого запуска скрипта...
тут то мы и поймем...
кто криворукий... зубной врач или создатели nas4free или freebsd целиком...
31.08.2014 18:02
OlegON
 
типа на слово не верим... ну-ну :)
Цитата:
50 17 * * * oleg /usr/baggio.sh
Код:
echo "hren kotoraya ne diljna rabotat" > /usr/baggio.sh
лог
Цитата:
Aug 31 17:50:01 oops crond[7165]: pam_unix(crond:session): session opened for user oleg by (uid=х)
Aug 31 17:50:01 oops CROND[7171]: (oleg) CMD (/usr/baggio.sh)
Aug 31 17:50:01 oops sSMTP[7176]: Creating SSL connection to host
Aug 31 17:50:01 oops sSMTP[7176]: SSL connection using ECDHE-RSA-AES128-GCM-SHA256
Aug 31 17:50:03 oops sSMTP[7176]: Sent mail for ххххх@ххххх.ru (221 2.0.0 closing connection t1sm35961laa.43 - gsmtp) uid=ххх username=ххххх outbytes=858
Aug 31 17:50:03 oops CROND[7165]: pam_unix(crond:session): session closed for user oleg
пришло письмо
Цитата:
/usr/baggio.sh: line 1: hren: command not found
31.08.2014 19:53
baggio
 
условие не собдюдено...
для чистоты эксперимента никаких правильных действий в скрипте быть не должно...
в частности отсылка писем...
т.е. изначально не работающая строка... без всяких там имэйлов...
зачем имейл то добавил...
я может баг всей жизни пытаюсь найти.. а ты...
31.08.2014 20:15
OlegON
 
Ты не только маны не читаешь, но и то, что я пишу? :) Отсылка емейла - штатная особенность крона. Все, что скрипт выводит на экран, крон тебе присылает почтой.
Я ничего не добавлял, кроме того, что написал выше. Ну, только права на исполнение скрипта дал.
31.08.2014 22:30
baggio
 
я хочу чтобы в файле было написано только
Цитата:
hren kotoraya ne diljna rabotat
даже без перевода строки...
и хочу увидеть что напишет cron в логе..
я что-то непонятно пишу?
31.08.2014 23:11
OlegON
 
извини, без перевода не заморачивался. вот, как я скрипт создавал, только одна строка
Цитата:
OlegON
Код:
echo "hren kotoraya ne diljna rabotat" > /usr/baggio.sh
31.08.2014 23:23
baggio
 
ну вот и нашлась правда... значит это криворукие создатели nas4free
31.08.2014 23:26
OlegON
 
Я и говорю, поставь Gentoo :)
31.08.2014 23:29
baggio
 
Цитата:
OlegON Я и говорю, поставь Gentoo :)
да у меня полжизни уйдет на то чотбы перепробовать все дистрибы...
в генту тоже наверное есть "неинтуитивные .. "
от багов баги не ищют...
01.09.2014 07:21
OlegON
 
ну, хоть полноценный дистр будет, с манами
01.09.2014 11:04
baggio
 
я даже скорее всего почему они отключили вывод в syslog из крона...
оно же предпологает embeded и неизменяемую FS.. соответсвенно логи в раме...
и чтоб не засирать типа наверное отключили...
но всё одно странно...
01.09.2014 11:15
OlegON
 
да ничего странного... рассматривается, как я полагаю, в виде черной коробки для юзера...
Опции темы


Часовой пояс GMT +3, время: 05:40.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.