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
 
Ну все кроны лог пишут, может ты не в том логе смотришь... Я как-то устал тебе повторять, что ты вылез за пределы куцей системы, а, возможно, что-то уже и поломал в ней.
Часовой пояс GMT +3, время: 22:22.

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