Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2009-12-14 18:10:56

  jaceqp - Użytkownik

jaceqp
Użytkownik
Skąd: Biała Podl.
Zarejestrowany: 2005-11-24
Serwis

CRON - przestał działać z /etc/crontab +problemy z odpalaniem skryptów

Na początek lekkie sprostowanie - chodzi o SUSE nie o Deb'a, ale zasada jest w sumie ta sama....

Od kilku dni zastanawiam się co się mogło 'sypnąć'...

Projekt polega na uruchomieniu cyklicznego wykonywania kopii zapasowej codziennie o określonej godzinie.
Aby sprawdzić funkcjonowanie crona w tabeli crontaba (etc/crontab) dodałem odpowiedni wpis testowy czyli np.:

*/1 * * * * root echo "test_$(date +%Y%m%d_[%H:%M:%S]) " >> /home/test.txt[/quote]
Wszystko ładnie pięknie... Zamieniłem zatem w/w wpis na wywołanie skryptu wykonującego kopie zapasowe kopii PostgreSQL. Jest to gotowiec, który już był w systemie - nie znam szczegółów - ktoś inny instalował SLES'a i bazę danych.
W każdym razie wykonując 'z palca'

# /srv/jboss_std/AdmNarz/./backup_create.sh[/quote]
tworzy się kopia na 'żywej' bazie tj. w trakcie pracy i w efekcie zapisuje plik *.dump tworząc przedtem folder z bieżącą datą w odpowiednim katalogu.

Po modyfikacjach crona:

*/10 * * * * root /srv/jboss_std/AdmNarz/./backup_create.sh[/quote]
(co 10min to tylko przykład, zresztą archiwum ma tylko 100MB tworzy się w parę sekund) archiwum się nie tworzy - w mailach roota widać m.in. typowe problemy z interpretacją poleceń poszczególnych linii skryptu tj. '....file/command not found'.
Zrobiłem więc skrypt pomocniczy w którym najpierw wchodzę do folderu ze skryptem a potem odpalam go bezpośrednio czyli np.

#!/bin/sh
cd /srv/jboss_std/AdmNarz
./backup_create.sh[/quote]
Teoretycznie coś się zaczęło dziać tj. utworzył katalog itp, w logach niby błędów nie było ale pliku archiwum brak. No i teraz najciekawsze... Po jakimś czasie cron przestał wykonywać jakiekolwiek zadania umieszczone w /etc/crontab...
Ktoś potem próbował coś mieszać z uprawnieniami do w/w tabeli - widziałem wpis chmod +rwx /etc/crontab (jakby to miało jakiś sens...). crontab jest teraz cały czas oflagowany jako wykonywalny ale nadal nie działa.
Kombinowałem już trochę - podmieniałem crontaba z nowo postawionej dystrybucji SLES'a, kopiowałem crontaba z innego serwera - bez zmian. Nie odpala się i koniec. Wyłączałem/włączałem crona ponownie - też bez zmian.

# /etc/init.d/crond stop
# /etc/init.d/crond start
# ps ax | grep cron[/quote]
Zresztą chyba w jakiś cudowny sposób przechowywane są jeszcze gdzieś informacje o crontabie, bo po usunięciu obu plików crontab i ~crontab i założeniu pustych np geditem - znowu pojawiają się z atrybutami +rwx....

Chciałem spróbować jeszcze czy da się uruchomić coś z tabel crona konkretnego usera. Założyłem nową tabelę dla roota

# crontab -e[/quote]
Wklepałem tam jakieś proste polecenie:

SHELL=/bin/bash
USER=root
*/1 * * * * echo "blablabla" >> /home/test2.txt[/quote]
Taki wpis niby działa, ale znów nie ma możliwości uruchomienia skryptu kopii zapasowej (nawet nie zakłada katalogu).
Zrobiłem trochę 'trudniejsze' zadanie - w tabeli roota kazałem wykonać prosty skrypt odwołujący się do daty:

#!/bin/bash
data=$(date '+%Y-%m-%d')
godzina=$(date '+%H:%M:%S')
echo "test_wykonano: "$data.$godzina >> /home/test2.txt[/quote]
...i tu już się zaczął wykładać m.in. niezrozumiałymi poleceniami 'date'. (Skrypt odpalany z palca działa).

1) W jaki sposób przywrócić główną tabelę 'crontab' do stanu funkcjonalności?
2) Jak wymusić (jeśli się da) wykonywanie przez crona bardziej 'skomplikowanych' skryptów z masą zmiennych, odwołań itp.
3) Jakieś inne wskazówki/sugestie ?


A brand new linux fan ;]

Do zabawy/testów deb'a: P4 1.7Ghz, mobo MSI (@intel 845), 512MB DDR, HDD 20GB.
Do zabawy ubuntu 7.10: AMD X2 3800+, mobo DFI(@nForce 4 Ultra), 2GB DDR2, ATi X1950, HDD 250+160+120GB

Offline

 

#2  2009-12-14 21:03:44

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: CRON - przestał działać z /etc/crontab +problemy z odpalaniem skryptów

[quote=jaceqp]

#!/bin/bash
data=$(date '+%Y-%m-%d')
godzina=$(date '+%H:%M:%S')
echo "test_wykonano: "$data.$godzina >> /home/test2.txt[/quote]
...i tu już się zaczął wykładać m.in. niezrozumiałymi poleceniami 'date'.[/quote]
Odpalaj [tt]date[/tt] przez [tt]/bin/date[/tt] (inne programy analogicznie).

Albo dodaj na górze crontaba [tt]PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin[/tt] (lub podobny).


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.012 seconds, 17 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00005 SET NAMES latin2
0.00094 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.144.235.138' WHERE u.id=1
0.00071 UPDATE punbb_online SET logged=1732523236 WHERE ident='3.144.235.138'
0.00044 SELECT * FROM punbb_online WHERE logged<1732522936
0.00060 DELETE FROM punbb_online WHERE ident='18.119.162.226'
0.00068 DELETE FROM punbb_online WHERE ident='18.191.103.144'
0.00072 DELETE FROM punbb_online WHERE ident='185.191.171.4'
0.00079 DELETE FROM punbb_online WHERE ident='3.145.89.89'
0.00076 DELETE FROM punbb_online WHERE ident='3.15.225.177'
0.00069 DELETE FROM punbb_online WHERE ident='3.23.103.216'
0.00071 SELECT topic_id FROM punbb_posts WHERE id=136565
0.00106 SELECT id FROM punbb_posts WHERE topic_id=15733 ORDER BY posted
0.00066 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=15733 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00096 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=15733 ORDER BY p.id LIMIT 0,25
0.00074 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=15733
Total query time: 0.01066 s