LINUX.ORG.RU
ФорумAdmin

cron параллелит команды скрипта


0

0

Приветствую!

Написал тут небольшой скриптик для резервного копирования шары с виндовой машины, при выполнении "вручную" скрипт отрабатывается верно, но если засунуть его в cron то smbclient не отрабатывает задачу доконца, при этом запускаются команды идущие после... упростил скрипт - то же самое, находил похожие проблемы в инете но решения так и не нашел...

[code] #!/bin/sh bp=/home/dijik/BACKUPS cd $bp/tmp smbclient //192.168.1.2/_SHARE -U dijik%'паролька' -Tc -|gzip > $bp/tmp/`date +%a`.tar.gz mv -f $bp/tmp/`date +%a`.tar.gz /$bp [/code]


Re: cron параллелит команды скрипта

Не знаю, что у вас там делает cron, но за скрипт незачёт.

Когда запускает команды из под cron, то там переменная среды PATH обычно содержит меньшее число каталогов, поэтому могут быть найдены не все команды. И либо пишите полные пути (/bin/date), либо устанавливайте в скрипте PATH. Потом неизвестно сколько времени будет выполняться ваш скрипт, и может измениться день недели, то есть gzip пишет в однин файл, а mv будет на другой файл. Сделайте переменую, в ней сформируйте имя файла и используйте её значение для gzip и mv. Не надо дважды вызывать date.

Ну и если вы в начале пишите "cd $bp", то и в конце пишите "$bp", а не "/$bp". И проверяйте результат выполнения команды cd.

mky ★★★★★ ()

Re: cron параллелит команды скрипта

Внимательно читаем man 5 crontab

The ``sixth'' field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the crontab file. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input. There is no way to split a single command line onto multiple lines, like the shell's trailing "\".

asdfghzxcvbn ()
Ответ на: Re: cron параллелит команды скрипта от mky

Re: cron параллелит команды скрипта

скрипт был максимально упрощен ввиду поиска граблей, про переменную PACH - не то, в том смысле что скрипт отрабатывается, но не корректно, т.е. начинается процесс вытягивается с самбы метров 50 потом все прекращается, при том что скрипт доходит до конца, при этом все команды норм находит... ЗЫ пробовал подставлять полные пути к командам - результат один

dijik ()
Ответ на: Re: cron параллелит команды скрипта от dijik

Re: cron параллелит команды скрипта

>скрипт был максимально упрощен ввиду поиска граблей

а выполните-ка ещё [serv@serv ~]#echo ./ваш_скрипт.sh - он выведет все действия, прописанные в нём, без их выполнения. Сценарий битвы, так сказать.

sh_Danik ()
Ответ на: Re: cron параллелит команды скрипта от dijik

Re: cron параллелит команды скрипта

>возвращает название скрипта)

эммм... знач я криво объяснил )) видимо это справедливо для отдельной команды, а не для скриптов..

sh_Danik ()
Ответ на: Re: cron параллелит команды скрипта от dijik

Re: cron параллелит команды скрипта

>скрипт был максимально упрощен ввиду поиска граблей,

50 метров вытягивает и рвётся максимально упрощённый скрипт? Попробуйте заменить /bin/sh на /bin/bash и после пайпа

smbclient ... |gzip

добавить "echo ${PIPESTATUS[*]} >> /tmp/cron_smbcl.tmp"

чтобы было видно, с каким статусом заверашется smbclient. Заодно будет видно, сколько раз запускается этот скрипт, а то может у вас cron запускает его каждую минуту.

mky ★★★★★ ()
Ответ на: Re: cron параллелит команды скрипта от mky

Re: cron параллелит команды скрипта

>добавить "echo ${PIPESTATUS[*]} >> /tmp/cron_smbcl.tmp

сделал, сейчас времени нет проверить к сожалению в пнд отпишусь как и что... спс за идеи всем!

dijik ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.