Титла: Crontab Публикувано от: anakinn в Mar 22, 2007, 15:40 Имам следните редове в кронтаба (отварям го по следня начин
le /etc/crontab) #29 15 * * * root /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F`.fbk 35 15 * * * root gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F`.fbk >/dev/null 2>&1 Ако от конзола го стартирам, базата е малко за една секунда изпълнява командата - няма проблем. След всяка промяна в кронтаба правя /etc/rc.d/cronta restart ,но така и не се създаде този файл.... Предложения? Титла: Crontab Публикувано от: urud в Mar 22, 2007, 16:04 Пробвай с пълния път до gbak
Титла: Crontab Публикувано от: sunshine в Mar 22, 2007, 16:13 указал си че всеки ден в 15:35 ще се изпълнява съответната функция.
Пробвай на всеки 5 мин със: */5 * * * * root gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F`.fbk >/dev/null 2>&1 ако създаде файла тогава можеш да сложиш това което ти трябва, повече описание на crontab тук Титла: Crontab Публикувано от: anakinn в Mar 22, 2007, 17:12 Пробвах също така и с пълния път до gbak, но все тая.
Ето какво има в /var/log/cron: Mar 22 17:06:00 KAR1 /usr/sbin/cron[41222]: (root) CMD ( gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +) Сякаш прочита командата до преди "%" символа... Титла: Crontab Публикувано от: martos в Mar 22, 2007, 18:31 Пробвай да сложиш всичко в "" или го запиши в някакъв скрипт, който се извиква от крон
Титла: Crontab Публикувано от: sunshine в Mar 22, 2007, 18:36 това със стартирането на външен скрипт ще тръгне
може cron да не може да пуска такива разширени команди и да изисква пускането на скриптче Титла: Crontab Публикувано от: anakinn в Mar 23, 2007, 09:48 Новия /etc/crontab
47 9 * * * root sh /data/backup/get-archive.sh cat get-archive.sh #!bin/sh gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F`.fbk ако го стартирам ръчно sh get-archive.sh - няма проблем Титла: Crontab Публикувано от: sunshine в Mar 23, 2007, 14:30 Неможах да разбера, тръгнали както трябва или не
Титла: Crontab Публикувано от: anakinn в Mar 23, 2007, 18:47 Не, отново crontab не го стартира.
Просто исках да кажа, че скрипта работи sh get-archive.sh Пусто... Титла: Crontab Публикувано от: Hapkoc в Mar 23, 2007, 18:57
Виж пощата на потребителя, от чийто crontab се опитваш да стартираш скрипта (mail). Сложи в crontab-а нещо от тоя род: * * * * * /bin/env > /tmp/env.out После виж какво има в тоя файл - това е обкръжението, с което се стартират командите от cron. Можеш да го сравниш с нормалното обкръжение на потребителя (diff). Горе-долу за това се сещам. Титла: Crontab Публикувано от: GoodT в Mar 23, 2007, 20:00 Махни шела "sh" от реда - 47 9 * * * root sh /data/backup/get-archive.sh
Титла: Crontab Публикувано от: anakinn в Mar 26, 2007, 11:34 Добавих:
* * * * * root /bin/env > /tmp/env.out KAR1# cat /tmp/env.out KAR1# празно пробвах също така да махна "sh" от реда, който изпълнявам, но пак без ефект... Mar 26 11:33:00 KAR1 /usr/sbin/cron[56391]: (root) CMD (/data/backup/get-archive.sh) Mar 26 11:33:00 KAR1 /usr/sbin/cron[56392]: (operator) CMD (/usr/libexec/save-entropy) Mar 26 11:33:27 KAR1 /usr/sbin/cron[56432]: (tmp.43582) ORPHAN (no passwd entry) Mar 26 11:34:00 KAR1 /usr/sbin/cron[56438]: (root) CMD (/bin/env > /tmp/env.out) Mar 26 11:34:01 KAR1 /usr/sbin/cron[56439]: (root) CMD (/data/backup/get-archive.sh) Титла: Crontab Публикувано от: sunshine в Mar 26, 2007, 15:14 явно нещо cron-а не работи добре
прекомпилирай го от source код това което остава, други варянти в конфигурацията няма Титла: Crontab Публикувано от: anakinn в Mar 26, 2007, 17:12 Значи аз ползвам това, кеото върви с дистрибуцията.
В /usr/ports/... - има няколко крон-а - кой по-точно да сложа? А помежду другото мисля, че крона си бачка без проблем, тъй като добавих следното: 18 13 * * * root mkdir /wwwwwwwwwwwwww и директорията бе създадена Титла: Crontab Публикувано от: GoodT в Mar 27, 2007, 21:14 Остава вариянта с правата на файла (скрипта). Мисля, че не си го направил изпълним.
#chmod u+x /data/backup/get-archive.sh Друга причина за да не го изпълни cron-a не виждам. Титла: Crontab Публикувано от: sunshine в Mar 27, 2007, 22:20 мдам правата , гадно обикновено всеки ги установява на 1-во място
сложи достъп 777 до скрипта и ще тръгне щом ти създава директория cron без проблем Титла: Crontab Публикувано от: anakinn в Mar 28, 2007, 10:55 Пак не става. chmod-нах цялата директория на 777 дори.
cat /var/log/cron Mar 28 10:52:00 KAR1 /usr/sbin/cron[72116]: (root) CMD (gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +) Mar 28 10:53:23 KAR1 /usr/sbin/cron[72148]: (tmp.43582) ORPHAN (no passwd entry) Mar 28 10:54:00 KAR1 /usr/sbin/cron[72158]: (root) CMD (sh /data/backup/get-archive.sh) Mar 28 10:54:24 KAR1 /usr/sbin/cron[72187]: (tmp.43582) ORPHAN (no passwd entry) Mar 28 10:55:00 KAR1 /usr/sbin/cron[72194]: (root) CMD (sh /data/backup/get-archive.sh) Mar 28 10:55:00 KAR1 /usr/sbin/cron[72195]: (operator) CMD (/usr/libexec/save-entropy) Mar 28 10:55:00 KAR1 /usr/sbin/cron[72196]: (root) CMD (/usr/libexec/atrun) cat /etc/crontab 55 10 * * * root sh /data/backup/get-archive.sh #52 10 * * * root gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F`.fbk Не знам вече... Титла: Crontab Публикувано от: neter в Mar 28, 2007, 11:27 Виж описанието на първия резултат от ей това търсене
http://www.google.bg/search?....10&sa=N Титла: Crontab Публикувано от: GoodT в Mar 28, 2007, 12:14 Пак ще кажа - махни го това "sh" от реда - 55 10 * * * root sh /data/backup/get-archive.sh
55 10 * * * root /data/backup/get-archive.sh Шела си е указан SHELL=/bin/sh И щом скрипта е с права за изпълнение, няма причина да не го пуска. Титла: Crontab Публикувано от: neter в Mar 28, 2007, 12:34 Може и нещо да пропускам, ама защо се занимавате с правата на get-archive.sh? Аз като гледам логовете, той си се изпълнява. Въпроса е, че реда с gbak не се изпълнява целия, защото % го отрязва. Затова предложих на човека да използва скоби, вместо апострофи. Може и да сложи съдържанието между апострофите в една променлива и после да я използва в реда с gbak. Току виж тези неща помогнали.
Титла: Crontab Публикувано от: anakinn в Mar 28, 2007, 14:27 neter: сайта, който посочи, вече няколко минути чакам отговор оп мейла, но уви. Можеш ли да напишеш тука какво имаш в предвид това да използвам скоби, вместо "%" ?
Титла: Crontab Публикувано от: neter в Mar 28, 2007, 16:00 Това, което ти пратих не е сайт, а страница с резултати от търсене в Google. Както и да е. Та там се вижда написано $(date +%A). Ти използваш `date +%F`. Виках да замениш апострофите (`) със скоби, както беше написано там. Т.е., предлагам да пробваш 2 варианта на реда. Единият е:
а другия е в два реда
Задаването на променливата можеш да я пробваш и с някоя от тези вариации
и т.н., игра на въображението. И за двата варианта ти препоръчвам да ги сложиш в един отделен скрипт и в crontab-а да зададеш изпълнението на този скрипт. Съжалявам, че приказвам толкова отнесено, но в момента нямам машина, на която да тествам какво приказвам. Титла: Crontab Публикувано от: anakinn в Mar 28, 2007, 16:51 Изпробвах всичките опции...
cat getarch.sh #!bin/sh promenliva=`date+%F` gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-$promenliva.fbk sh getarch.sh date+%F: not found gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-(date +%F).fbk Badly placed ()'s. С /bin/csh съм, пробвах и с други шелове, но... Направо не знам вече какво е..... Титла: Crontab Публикувано от: Hapkoc в Mar 28, 2007, 17:06 gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-$(date +%F).fbk
Титла: Crontab Публикувано от: anakinn в Mar 29, 2007, 09:33 В cron имам
gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-$(date +%F).fbk cat /var/log/cron /usr/sbin/cron[76914]: (root) CMD (gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-$(date +) а не трябва ли в cron да направя нещо от рода на cd /data/backup; ./archive.sh (промених името на файл) Нали файловете се стартират така? "./" и името на скрипта? мисля че някъде от там идва целия проблем... Титла: Crontab Публикувано от: IID_IUnknown в Mar 31, 2007, 12:26 tail /var/log/cron
Титла: Crontab Публикувано от: anakinn в Apr 02, 2007, 17:57 tail -f /var/log/cron
Apr 2 17:30:00 KAR1 /usr/sbin/cron[94246]: (root) CMD (/usr/libexec/atrun) Apr 2 17:33:00 KAR1 /usr/sbin/cron[94249]: (operator) CMD (/usr/libexec/save-en tropy) Apr 2 17:35:00 KAR1 /usr/sbin/cron[94262]: (root) CMD (/usr/libexec/atrun) Apr 2 17:40:00 KAR1 /usr/sbin/cron[94267]: (root) CMD (/usr/libexec/atrun) Apr 2 17:44:00 KAR1 /usr/sbin/cron[94270]: (operator) CMD (/usr/libexec/save-en tropy) Apr 2 17:45:00 KAR1 /usr/sbin/cron[94283]: (root) CMD (/usr/libexec/atrun) Apr 2 17:50:00 KAR1 /usr/sbin/cron[94286]: (root) CMD (/usr/libexec/atrun) Apr 2 17:55:00 KAR1 /usr/sbin/cron[94290]: (operator) CMD (/usr/libexec/save-en tropy) Apr 2 17:55:00 KAR1 /usr/sbin/cron[94291]: (root) CMD (/usr/libexec/atrun) Apr 2 17:57:19 KAR1 /usr/sbin/cron[94334]: (tmp.43582) ORPHAN (no passwd entry) Apr 2 17:58:00 KAR1 /usr/sbin/cron[94338]: (root) CMD (gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-$(date +) Титла: Crontab Публикувано от: GoodT в Apr 02, 2007, 20:17 Ти го измъчи тоя cron
Направи си скриптчето /data/backup/get-archive.sh #!/bin/sh gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F_%H:%M`.fbk Направи го изпълним: #chmod u+x /data/backup/get-archive.sh Посочи го в /etc/crontab: минута час * * * root /data/backup/get-archive.sh И готово. Ако в уречения час не се изпълни поглени какво ще ти каже crona : #mail ПП: Сложил съм и часа в името на файла. На няколко от твойте примери имаш малки, но съществени грешки, като интервал примерно Титла: Crontab Публикувано от: daxen в Apr 02, 2007, 21:06 Навсякъде в скрипта си слагай пълния път /usr/local/bin/gbak
с това трябва да се оправиш Титла: Crontab Публикувано от: anakinn в Apr 03, 2007, 10:12 cron-а стана ....
tail -f /var/log/cron Apr 3 09:00:00 KAR1 /usr/sbin/cron[96401]: (operator) CMD (/usr/libexec/save-entropy) Apr 3 09:00:00 KAR1 /usr/sbin/cron[96402]: (root) CMD (/usr/libexec/atrun) Apr 3 09:05:00 KAR1 /usr/sbin/cron[96419]: (root) CMD (/usr/libexec/atrun) Apr 3 09:10:00 KAR1 /usr/sbin/cron[96438]: (root) CMD (/usr/libexec/atrun) Apr 3 09:11:00 KAR1 /usr/sbin/cron[96447]: (operator) CMD (/usr/libexec/save-entropy) Apr 3 09:15:00 KAR1 /usr/sbin/cron[96471]: (root) CMD (/usr/libexec/atrun) Apr 3 09:17:00 KAR1 /usr/sbin/cron[94334]: (*system*) RELOAD (/etc/crontab) Apr 3 09:17:00 KAR1 /usr/sbin/cron[94334]: (tmp.43582) ORPHAN (no passwd entry) Apr 3 09:17:35 KAR1 /usr/sbin/cron[96504]: (tmp.43582) ORPHAN (no passwd entry) Apr 3 09:18:10 KAR1 /usr/sbin/cron[96528]: (tmp.43582) ORPHAN (no passwd entry) Apr 3 09:20:00 KAR1 /usr/sbin/cron[96533]: (root) CMD (/data/backup/archive.sh) Apr 3 09:20:00 KAR1 /usr/sbin/cron[96534]: (root) CMD (/usr/libexec/atrun) Apr 3 09:22:00 KAR1 /usr/sbin/cron[96539]: (operator) CMD (/usr/libexec/save-entropy) Apr 3 09:25:00 KAR1 /usr/sbin/cron[96552]: (root) CMD (/usr/libexec/atrun) Apr 3 09:30:00 KAR1 /usr/sbin/cron[96555]: (root) CMD (/usr/libexec/atrun) Apr 3 09:33:00 KAR1 /usr/sbin/cron[96558]: (operator) CMD (/usr/libexec/save-entropy) Apr 3 09:35:00 KAR1 /usr/sbin/cron[96571]: (root) CMD (/usr/libexec/atrun) Apr 3 09:40:00 KAR1 /usr/sbin/cron[96575]: (root) CMD (/usr/libexec/atrun) Apr 3 09:44:00 KAR1 /usr/sbin/cron[96578]: (operator) CMD (/usr/libexec/save-entropy) Apr 3 09:45:00 KAR1 /usr/sbin/cron[96591]: (root) CMD (/usr/libexec/atrun) Apr 3 09:50:00 KAR1 /usr/sbin/cron[96594]: (root) CMD (/usr/libexec/atrun) Apr 3 09:55:00 KAR1 /usr/sbin/cron[96598]: (operator) CMD (/usr/libexec/save-entropy) cat /etc/crontab 20 9 * * * root /data/backup/archive.sh cat arhive.sh #!/bin/sh /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date + %F_%H:%M`.fbk Титла: Crontab Публикувано от: daxen в Apr 03, 2007, 11:49 Пробвай в archive.sh да слоиш това
Титла: Crontab Публикувано от: anakinn в Apr 03, 2007, 14:35 cat arch.sh
#!/bin/bash DAY=`date +%d` MONTH=`date +%m` YEAR=`date +%Y` TIME=`date +%T` GBAK="/usr/local/bin/gbak" file_name=/data/backup/invenory-$DAY-$MONTH-$YEAR-$TIME.fbk location="/var/db/firebird/inventory.fdb" $GBAK -b $location $file_name cat /var/log/cron Apr 3 14:25:00 KAR1 /usr/sbin/cron[97369]: (root) CMD (/usr/libexec/atrun) Apr 3 14:26:00 KAR1 /usr/sbin/cron[96528]: (*system*) RELOAD (/etc/crontab) Apr 3 14:26:00 KAR1 /usr/sbin/cron[96528]: (tmp.43582) ORPHAN (no passwd entry) Apr 3 14:26:30 KAR1 /usr/sbin/cron[97421]: (tmp.43582) ORPHAN (no passwd entry) Apr 3 14:27:00 KAR1 /usr/sbin/cron[97425]: (root) CMD (arhive.sh) Apr 3 14:30:00 KAR1 /usr/sbin/cron[97473]: (root) CMD (/usr/libexec/atrun) Apr 3 14:33:00 KAR1 /usr/sbin/cron[97515]: (operator) CMD (/usr/libexec/save-entropy) Apr 3 14:35:00 KAR1 /usr/sbin/cron[97571]: (root) CMD (/usr/libexec/atrun) А ако го пусн sh arch.sh - създава файла... Не знам вече Да пробвам някаква друга алтернатива на крон? Или пък да си ъпдейтна цялата система - портове, пакети така може някаква промяна по cron-а да се направи... /което пък не знам точно как става/ първо cvsup, после buildkernel, installkerne, buildworld? Титла: Crontab Публикувано от: sunshine в Apr 03, 2007, 15:50 мен ми се струва че имаш проблеми със cron или със правата за достъп
каквото и да пробваш повече няма да стане, защото си направил вече основните комбинации от кадето идва проблема Титла: Crontab Публикувано от: anakinn в Apr 03, 2007, 15:56 И аз си мисля, че имам някакъв друг проблем.
cron-а си работи, защото ако му задам да създава директории или разни други такива неща няма проблем. Той дори прави самия бекъп. Даже най-вероятно така ще го оставя. Т.е. те ще се презаписват. Тук малко ще се отклоня от темата /почти го преживях тоя крон/ може ли накратко обяснение как да си ъпдейтна цялата система - портове, пакети, системни файлове, .conf-ове. и ако го направя - старите конфове ще ми се запазят ли? Титла: Crontab Публикувано от: IID_IUnknown в Apr 03, 2007, 16:40 Погледни си последната извадка от лога и сам си отговори на въпроса какво е различното между твоя скрипт и останалите, които се изпълняват.
Крон демона идея си няма къде ти се намира скрипта, който искаш да изпълниш, дай му пълния път до него в командата. Целия ти проблем идва от това, че не ползваш пълните пътища, разчитайки на environment-а (който обаче крона не го вдига) Титла: Crontab Публикувано от: anakinn в Apr 04, 2007, 16:16 Значи описах пълния път то скрипта, но това съм го правил
./data/backup/arhive.sh zsh: no such file or directory: ./data/backup/arhive.sh Това е крона: Apr 4 16:07:49 KAR1 /usr/sbin/cron[4885]: (tmp.43582) ORPHAN (no passwd entry) Apr 4 16:08:00 KAR1 /usr/sbin/cron[4888]: (root) CMD (/data/backup/arhive.sh) Мислех си да го направя по следния начин. Създавам файла само с името invenntory.fbk и после в cron mv inventory.fb .... нещо със датата м? Титла: Crontab Публикувано от: IID_IUnknown в Apr 04, 2007, 21:54 И за какво ти е тази точка отпред?
Титла: Crontab Публикувано от: anakinn в Apr 05, 2007, 09:18 Ами нали така се стартирват файлове
точка "." и тогава файла? В кронтаба пробвах със и без "." 10 9 * * * root /data/backup/arhive.sh 00 22 * * * root /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory.fbk С mv няма ли как да се получи номера? Титла: Crontab Публикувано от: neter в Apr 05, 2007, 09:41 Само да вметна... anakinn, изпълними файлове се изпълняват по 2 начина:
1. Отиваш в папката, където е файла (cd /bla/bla/bla) и изпълняваш файла с ./file 2. Независимо къде се намираш, изпълняваш файла с /bla/bla/bla/file Когато изписваш пълния път до файла, не се пише точка отпред Не каза какво стана с примера, който ти дадох? Благодаря на Hapkoc, че ме поправи, понякога недоглеждам Титла: Crontab Публикувано от: anakinn в Apr 05, 2007, 11:55 Благодаря за разяснението.
Т.е. както е сега в кронтаба /просто сменям времето и /etc/rc.d/cron restart/ е правилно нали така? Примера имаш предвид скобите вместо % ? Пак нямаше ефект... М/у другото пробвах на една друга машина FreeBSD 6.2 и там крон-а не може да се справи със %-та Предполагам станах доста банален с този крон, но такова нещо не ме яло толкова време. Okey - може ли да помоля някой от Вас, да пусне нещо в крона - примерно - tar cvfz /../../../file date + %F и т.н. за да видим как ще реагира? Титла: Crontab Публикувано от: GoodT в Apr 05, 2007, 17:05 Защо си мисля, че проблема ти е от дребните грешки:
. . . cat arhive.sh #!/bin/sh /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date + %F_%H:%M`.fbk . . . Има интервал между + и % , а не трябва. Иначе cron-a стартира скрипта: Apr 3 09:20:00 KAR1 /usr/sbin/cron[96533]: (root) CMD (/data/backup/archive.sh) Съвет: стартирай си скрипта от шела: #sh /data/backup/archive.sh и виж какво става и какво не става Титла: Crontab Публикувано от: anakinn в Apr 05, 2007, 18:19 Махнах интервала
KAR1# cat arhive.sh #!/bin/sh /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F_%H:%M`.fbk KAR1# tail -f /var/log/cronApr 5 18:11:00 KAR1 /usr/sbin/cron[9864]: (operator) CMD (/usr/libexec/save-entropy) Apr 5 18:15:00 KAR1 /usr/sbin/cron[9895]: (root) CMD (/usr/libexec/atrun) Apr 5 18:15:48 KAR1 /usr/sbin/cron[9923]: (tmp.43582) ORPHAN (no passwd entry) Apr 5 18:16:00 KAR1 /usr/sbin/cron[9926]: (root) CMD (/data/backup/archive.sh) Apr 5 18:16:42 KAR1 /usr/sbin/cron[9954]: (tmp.43582) ORPHAN (no passwd entry) Apr 5 18:17:00 KAR1 /usr/sbin/cron[9957]: (root) CMD (/data/backup/archive.sh) Създава файл, но с такова име KAR1# ll total 1082 -rwxr-xr-x 1 root wheel 108B Apr 5 18:14 arhive.sh --> -rw-r--r-- 1 root wheel 320K Apr 5 18:13 inventory-.fbk <-- -rwxrwxrwx 1 root wheel 298K Apr 4 22:00 inventory.fbk последния файл /inventory.fdb/ го правя просто с този ред в крона: 00 22 * * * root /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory.fbk Титла: Crontab Публикувано от: GoodT в Apr 05, 2007, 23:30 План "Б"
След като си създаваш /data/backup/inventory.fbk просто си го премествай с датата. Промени си скриптчето /data/backup/archive.sh : #!/bin/sh mv /data/backup/inventory.fbk /data/backup/inventory-`date +%F`.fbk Да има и права за изпълнение: #chmod u+x /data/backup/archive.sh , ако няма. Запиши го в /etc/crontab с 5 мин. по късно (примерно) от създаването. ако - 00 22 * * * root /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory.fbk то - 05 22 * * * root /data/backup/archive.sh Титла: Crontab Публикувано от: anakinn в Apr 06, 2007, 09:23 tail -f /var/log/cron
Apr 6 09:15:00 KAR1 /usr/sbin/cron[12033]: (root) CMD (/usr/libexec/atrun) Apr 6 09:19:47 KAR1 /usr/sbin/cron[12134]: (tmp.43582) ORPHAN (no passwd entry) Apr 6 09:20:00 KAR1 /usr/sbin/cron[12156]: (root) CMD (/data/backup/archive.sh) Apr 6 09:20:00 KAR1 /usr/sbin/cron[12157]: (root) CMD (/usr/libexec/atrun) cat arhive.sh #!/bin/sh #/usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F_%H:%M`.fbk Пробвах и с "/bin/mv" Пак не става, ако стартирам скрипта ръчно /data/backup/archive.sh - го мести А само да попитам Защи започваме с #!/bin/sh , след като това са ми шеловете? /bin/sh /bin/csh /bin/tcsh /sbin/nologin /usr/local/bin/zsh /usr/local/bin/bash Титла: Crontab Публикувано от: anakinn в Apr 11, 2007, 13:38 Някой пробва ли кронтаба с ред съдържащ "%F" ?
Титла: Crontab Публикувано от: anakinn в Apr 13, 2007, 17:00 Моля Ви, не оставяйте темата така...
Знам че може би вече е досадно, но... проблема си е проблем, а и вече си мисля, че аз не бъркам нещо конкретно. Титла: Crontab Публикувано от: sunshine в Apr 13, 2007, 21:38 crontab-а с %F си върви перфектно при мен на федора и си прави резевно копие на postgresql.
#!/bin/sh указва че ще ползваш този шел ако имаш други шелове след него ще пуска шелове в шела което може да ти даде грешка #! указва ще следващите команди ще бъдат изпълнявани с тази програма виж можеби правиш някаква дребна грешка (синтактична), ако не някой софтуер не ти работи както трябва друг да се заеме да ти оправи скрипта ако не можеш сам Титла: Crontab Публикувано от: IID_IUnknown в Apr 15, 2007, 00:13
# в началото на реда указва коментар, т.е. тази команда не се изпълнява. Титла: Crontab Публикувано от: sunshine в Apr 15, 2007, 11:00
IID_IUnknown прав си (седнал в някой случаи ), но anakinn пита за #! на първия ред в скрипта иначе си е така # забранява изпълнението на реда в други случаи е // или -- или /* респективно */ Титла: Crontab Публикувано от: anakinn в Apr 16, 2007, 11:17 Съжалявам - моя грешка, вече се..
cat arhive.sh #!/bin/sh /usr/local/bin/gbak -B /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F_%H:%M`.fbk tail -f /var/log/cron Apr 16 11:17:37 KAR1 /usr/sbin/cron[45370]: (tmp.43582) ORPHAN (no passwd entry) Apr 16 11:18:00 KAR1 /usr/sbin/cron[45373]: (root) CMD (/data/backup/archive.sh) и пак няма резултат Хайде някой да пусне една подобна команда в крона примерно mkdir /aaaaaaa-`date +%F_%H:%M` Титла: Crontab Публикувано от: IID_IUnknown в Apr 16, 2007, 12:38 http://www.penguin-soft.com/penguin/man/1/gbak.print
с това не съм работил, но като гледам параметрите за базата ти са в environment променливи, които ги нямаш в обкръжението на крона ... Просто цялата тази история смърди на липсващи environment variabltes. Титла: Crontab Публикувано от: anakinn в Apr 16, 2007, 12:57 Ами не знам. Аз единствено бекъп/рестор - това правя.
А някакъв резултат от обикновен ред в крона, който да съдържа тези символи, има ли? А това в началото на скрипта #!/bin/sh може ли да се промени с #!/bin/bash csh, zsh - примерно? Не съм наясно, затова питам. Титла: Crontab Публикувано от: sunshine в Apr 16, 2007, 13:17
може и точно така се сменя зависи кой шел ще ти пуска командите без значение дали е SH, BASH , CSH Или ниакой твой скрипт който да прави нещо друго с тези команди а защо не работиш с копиране на директория или файл, а ползваш gbak ефекта ще е същия, ако не ще е по-добър Титла: Crontab Публикувано от: anakinn в Apr 16, 2007, 14:37 Искаш да кажеш да копирвам самия .fdb файл, вместо всеки път gbak - ще опитам
Принципно след gbak backup/restore базата се поизчиства и донякъде се пооптимизира. В началото беше малка, но вече стана 11-12мб cron: (пробвах и само cp .......) 35 14 * * * root /bin/cp /var/db/firebird/inventory.fdb /data/backup/inventory-`date +%F`.fdb tail -f /var/log/cron Apr 16 14:34:00 KAR1 /usr/sbin/cron[45946]: (root) CMD (cp /var/db/firebird/inventory.fdb /data/backup/inventory-`date +) Apr 16 14:34:28 KAR1 /usr/sbin/cron[45977]: (tmp.43582) ORPHAN (no passwd entry) Apr 16 14:35:00 KAR1 /usr/sbin/cron[45984]: (root) CMD (/bin/cp /var/db/firebird/inventory.fdb /data/backup/inventory-`date +) Apr 16 14:35:00 KAR1 /usr/sbin/cron[45985]: (root) CMD (/usr/libexec/atrun) Прави ми впечатление, че крона изобщо не ги възприема тези символи... ето един пример: cat /etc/crontab 38 14 * * * root mkdir /aaaaaaaaaaaaaa-`date +%F` tail -f /var/log/cron Apr 16 14:37:12 KAR1 /usr/sbin/cron[46023]: (tmp.43582) ORPHAN (no passwd entry) Apr 16 14:38:00 KAR1 /usr/sbin/cron[46030]: (root) CMD (mkdir /aaaaaaaaaaaaaa-`date +) Титла: Crontab Публикувано от: anakinn в Apr 19, 2007, 17:49 Okey...
Хайде тогава като за край на темата, само да помоля някой да пусне някакъв ред в кронтаба с тези символи. Благодаря ! Титла: Crontab Публикувано от: Hapkoc в Apr 19, 2007, 20:26 anakinn, прав си мой човек. :)
cron явно има проблем с процентите, трябва да му ги escape-неш. Ей така: * * * * * /bin/echo $(date +%F) се получава същото като при тебе: Apr 19 20:24:01 shtaiga /USR/SBIN/CRON[16076]: (sasoiliev) CMD (/bin/echo $(date +) А ей така: * * * * * /bin/echo $(date +\%F) си работи. Титла: Crontab Публикувано от: Hapkoc в Apr 19, 2007, 20:29 Ето и отговора:
http://webmaster.iu.edu/tool_guide_info/crontab.shtml
Титла: Crontab Публикувано от: anakinn в Apr 20, 2007, 11:47 Hapkoc - Благодарности !
Много Голямо Благодаря на всички, които се включиха в темата. Радвам се че проблема е разрешен, надявам се пък да е било полезно и за другите. Още веднъж ... Благодаря ! |