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  2012-10-20 20:47:48

  remi - amputować akrobatów

remi
amputować akrobatów
Zarejestrowany: 2011-05-27

[Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Serwus! Szczerze mówiąc mam małe obawy zakładając ten temat, ponieważ już jutro od około godziny 9.ej rano, nie będę miał fizycznego dostępu do laptopa na którym działa Squeeze. Nie mam także możliwości, aby wykorzystać np. ssh etc,. Odległość jest imponująca bowiem wynosić będzie w przybliżeniu 300 km. Moja obawa wynika z prostej przyczyny; istnieje możliwość, że nie uda mi się do rana rozwiązać problemu, który de facto pojawił się dzisiaj. Nie wiem, również, czy właściwym jest zakładanie tego tematu. Niemniej, postanowiłem spróbować.

Potrzebuję, aby pewien, krótki składniowo skrypt był uruchamiany każdego dnia. W celu osiągnięcia tego, wydawało by się, prostego zamiaru utworzyłem testowy plik w katalogu /etc/cron.daily/test.sh, którego zadaniem było utworzenie pliku test w katalogu domowym użytkownika z treścią w stylu plik testowy do sprawdzenia crona etc,. Oczywiście nadałem mu prawo do wykonywania via 'chmod +x' oraz zmieniłem prawo dostępu poprzez 'chmod 755' (podobnie jak wszystkie pliki w katalogu /etc/cron.daily). Niestety, po ponownym uruchomieniu się komputera w/w pliku nie było w katalogu domowym, czyli cron nie zadziałał. Szukając rozwiązania tego problemu za pomocą internetu, wpadłem na taką możliwość, że pliki z końcówką .sh nie są wykonywane przez mechanizm cron. Padła nawet konkluzja iż jest to bug Debiana. Któż wie? Być może tak jest. Tak więc, postanowiłem zmienić nazwę pliku test.sh na test. Niestety, to również nie odniosło skutku.

Usługi takie jak at, crontab, anacron są zainstalowane i uruchamiane wraz ze startem systemu (system > administracja > usługi, zaznaczone w/w usługi). Wydaje się, że pomimo komunikatu Starting Anacron owa usługa działa, ale zobaczcie co się dzieje, kiedy sprawdzam jej działanie:

Kod:

/*
** $ps auxxx |grep anacron
** remi     2472  0.0  0.0   3320   792 pts/0    S+   19:09   0:00 grep --color=auto anacron
*/

Jak widać usługa anacron wydaje się, nie być uruomiona. Natiomiast usługi, sprawdzone tym samym sposobem, at, crontab działają, są uruchomione. Nie wiem, czy anacron może mieć jakikolwiek wpływ na ową zagwozdkę. Pomyślałem, że może plik /etc/anacrontab może mieć coś wspólnego z tym 'problemem', ale jego treść wydaje się być poprawna, prawda?

Kod:

/*
** # These replace cron's entries
** 1     5    cron.daily     nice run-parts --report /etc/cron.daily
*/

Być może za szybko panikuję i wystarczyło by uruchomić crontab -e i dodać odpowiednie wpisy np. w tym stylu; 1-31 1-12 0-6 root sh /etc/cron.daily/test lub  */5 * * * * root sh /etc/cron.daily/test. Podobnie do powyższego istnieją również specjalne łańcuchy, które mogą być stosowane: @daily  #Wykonaj raz dziennie [0 0 * * *]. Przeglądając pliki logów, jedynie /var/log/syslog zawiera jakieś informacje dot. cron'a, ale nie jestem pewien, czy obejmuje coś ważnego, coś, co może pomóc w rozwiązaniu tego zagadnienia.

Kod:

Oct 20 17:17:06 debian anacron[1415]: Job `cron.daily' terminated
Oct 20 17:17:06 debian anacron[1415]: Job `cron.weekly' started
Oct 20 17:17:06 debian anacron[2698]: Updated timestamp for job `cron.weekly' to 2012-10-20
Oct 20 17:28:32 debian /usr/sbin/cron[1448]: (CRON) INFO (pidfile fd = 3)
Oct 20 17:28:32 debian /usr/sbin/cron[1449]: (CRON) STARTUP (fork ok)
Oct 20 17:28:32 debian /usr/sbin/cron[1449]: (CRON) INFO (Running @reboot jobs)
Oct 20 17:36:26 debian anacron[1915]: Anacron 2.3 started on 2012-10-20
Oct 20 17:36:26 debian anacron[1915]: Normal exit (0 jobs run)
Oct 20 17:43:34 debian crontab[2420]: (root) LIST (root)
Oct 20 17:43:39 debian crontab[2422]: (root) BEGIN EDIT (root)
Oct 20 17:46:01 debian crontab[2422]: (root) END EDIT (root)
Oct 20 17:48:44 debian anacron[1385]: Anacron 2.3 started on 2012-10-20

Note: jeżeli uruchomię ten skrypt /etc/cron.daily/test klikając na niego 2.wu krotnie i wybierając opcję 'uruchom w terminalu' (w środowisku GNOME 2.30 po kliknięciu na skrypt pojawia się okno z możliwością wyboru kilku opcji), to działa! Tworzy plik w katalogu domowym.

Ostatnio edytowany przez remi (2012-11-01 11:08:29)


Łam ZAsady! wYjąTkÓw jest wIęcej.

Offline

 

#2  2012-10-20 21:13:54

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Dlaczego nie wpiszesz w

Kod:

crontab -e

Sciezki do skryptu.

W układzie

Kod:

20 20 * * * /sciezka/skrypt

Powinno codziennie o 20.20  wykonać ten skrypt.


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#3  2012-10-20 23:01:03

  remi - amputować akrobatów

remi
amputować akrobatów
Zarejestrowany: 2011-05-27

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Cześć ilin. W moim pierwszym poście, również rozważałem możliwość wykorzystania mechanizmu crontab -e. Problem jednak w tym, że trudno mi określić, zgadnąć, czy komputer będzie uruchomiony akurat o godzinie 20:20. Bardziej interesuje mnie zapis dot. wykonywania skryptu każdego dnia, ale bez określenia stałej godziny, rozumiesz? Skoro schemat wygląda w ten oto sposób;

* * * * *  polecenie do wykonania
- - - - -
| | | | |
| | | | +----- dni tygodnia (0-6) sunday = 0
| | | +------- miesiąc (1 - 12)
| | +--------- dni miesiąca (1 - 31)
| +----------- godzina (0 - 23)
+------------- minuta (0 - 59)


To wydaje się - według mnie -, że odpowiednim wpisem może okazać się, ale oczywiście mogę się mylić, coś w ten deseń ; 0-6 1-12 1-31 0-23 0-59  root sh /etc/cron.daily/test. Co o tym sądzisz? A może wystarczy tylko zastosować taką metodę?; * * * * *  root sh /etc/cron.daily/test?

Niemniej, dalej pozostaje otwarta kwestia dot. problemów z wykonaniem skryptu, który powinien być uruchamiany np. co tydzień, czy jak w moim przypadku, każdego dnia z wykorzystaniem mechanizmu Cron. Czyżby jest to wynikiem problemu (bug) w Debianie? Może warto przyjrzeć się np. Bug Tracking System?

Pozdrawiam!

Ostatnio edytowany przez remi (2012-10-20 23:02:36)


Łam ZAsady! wYjąTkÓw jest wIęcej.

Offline

 

#4  2012-10-20 23:53:04

  ba10 - Członek DUG

ba10
Członek DUG
Skąd: jesteś ?
Zarejestrowany: 2006-03-07
Serwis

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Jak dasz * na początku to będzie wykonywał skrypt co minute, ale możesz spróbować czegoś takiego :

Kod:

0 0 * * *

albo uruchamiaj skrypt przy starcie systemu.

Ostatnio edytowany przez ba10 (2012-10-21 00:02:58)


"Jeżeli chcesz się nauczyć Linuksa, to pierwsze co musisz zrobić to odrzucić wszelkie przyzwyczajenia wyniesione z poprzedniego systemu. Twoja wiedza jest o tyle zgubna, że daje Ci poczucie że coś jednak wiesz — jednak w kontekście Linuksa prawdopodobnie nie wiesz jeszcze nic." Minio
Mój Blog, a później Tańczymy ;)

Offline

 

#5  2012-10-21 00:35:15

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

remi napisał(-a):

Niestety, po ponownym uruchomieniu się komputera w/w pliku nie było w katalogu domowym, czyli cron nie zadziałał.

Z której strony niewykonanie skryptu z cron.daily w wyniku restartu systemu jest dowodem na niedziałanie Crona?

remi napisał(-a):

Szukając rozwiązania tego problemu za pomocą internetu, wpadłem na taką możliwość, że pliki z końcówką .sh nie są wykonywane przez mechanizm cron. Padła nawet konkluzja iż jest to bug Debiana. Któż wie? Być może tak jest.

To nie kwestia sh, tylko kropki. I to nie jest żaden bug.

man cron napisał(-a):

As  described  above,  the files under these directories have to be pass some sanity checks including the following: be executable, be owned by root, not be writable by group or other and, if symlinks, point to files owned by root. Additionally, the file names must conform to the filename requirements of run-parts: they must be entirely made up of letters, digits and can only  contain  the  special  signs  underscores  ('_')  and hyphens  ('-').  Any  file  that does not conform to these requirements will not be executed by run-parts.  For example, any file containing dots will be ignored.  This is done to prevent cron from running any of the files that are left by the Debian package management system when handling files in /etc/cron.d/ as configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, and .dpkg-new).

BTW, wszystkie wymagania z cytowanego fragmentu spełniasz?

remi napisał(-a):

Nie wiem, czy anacron może mieć jakikolwiek wpływ na ową zagwozdkę.

man cron napisał(-a):

Support  for  /etc/cron.hourly,  /etc/cron.daily,  /etc/cron.weekly  and  /etc/cron.monthly is provided in Debian through the default setting of the /etc/crontab file (see the system-wide example in crontab(5)).  The default sytem-wide crontab contains four tasks: run every hour, every day, every week and every month. Each of these tasks will execute run-parts providing each one of the directories as an argument. These tasks  are disabled if anacron is installed (except for the hourly task) to prevent conflicts between both daemons.

aptitude show anacron napisał(-a):

Anacron (like "anac(h)ronistic") is a periodic command scheduler.  It executes commands at intervals specified in days.  Unlike cron, it does not assume that the system is running continuously.  It can therefore be used to control the execution of daily, weekly, and monthly jobs (or anything with a period of n days), on systems that don't run 24 hours a day.  When installed and configured properly, Anacron will make sure that the commands are run at the specified intervals as closely as machine uptime permits.

This package is pre-configured to execute the daily jobs of the Debian system.  You should install this program if your system isn't powered on 24 hours a day to make sure the maintenance jobs of other Debian packages are executed each day.

Czyli powinno być OK, zatem wracamy do dwóch pytań powyżej.

remi napisał(-a):

Bardziej interesuje mnie zapis dot. wykonywania skryptu każdego dnia, ale bez określenia stałej godziny, rozumiesz?

Zadania z cron.daily normalnie też są wykonywane o stałej godzinie, sytuację zmienia dopiero Anacron.

remi napisał(-a):

Niemniej, dalej pozostaje otwarta kwestia dot. problemów z wykonaniem skryptu, który powinien być uruchamiany np. co tydzień, czy jak w moim przypadku, każdego dnia z wykorzystaniem mechanizmu Cron. Czyżby jest to wynikiem problemu (bug) w Debianie? Może warto przyjrzeć się np. Bug Tracking System?

Mało prawdopodobne aby w stabilnym wydaniu Debiana nie działał Cron. ;)

Offline

 

#6  2012-10-21 10:06:34

  remi - amputować akrobatów

remi
amputować akrobatów
Zarejestrowany: 2011-05-27

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Arn napisał(-a):

Z której strony niewykonanie skryptu z cron.daily w wyniku restartu systemu jest dowodem na niedziałanie Crona? (...) To nie kwestia sh, tylko kropki. I to nie jest żaden bug.

Hej, po prostu podczas pierwszej próby sprawdzenia tego 'skryptu', wykorzystałem plik test.sh. Po ponownym uruchomieniu, skrypt nie zadziałał (nie utworzył pliku w katalogu domowym), czyli - według mnie - cron go nie odpalił. Dopiero szukając w sieci, znalazłem info, że pewien użytkownik po usunięciu z nazwy pliku .sh opisał to jako rozwiązanie swojego problemu, podobnego bądź co bądź do mojego. W jego przypadku, skrypt z katalogu /etc/cron.daily/ również nie odpalał się każdego dnia, póki nie zmienił nazwy - usunął końcówkię .sh. Niestety w moim przypadku to nie pomogło. Cieszę, że nie jest to żaden bug.

Arn napisał(-a):

BTW, wszystkie wymagania z cytowanego fragmentu spełniasz?

Tak Arn, myślę, że spełniam te wymagania; plik o nazwie test, be executable, be owned by root, not be writable by group or other etc. Ciekawe zdanie ze strony podręcznika cron; (...) These tasks are disabled if anacron is installed (except for the hourly task) to prevent conflicts between both daemons. Wynika z tego, że jeżeli anacron jest zainstalowany (w tym przypadku jest), to zadania typu; run every hour, every day, every week and every month, nie będą wykonywane. No cóż, wydaje mi się, że mam zbyt mało czasu, aby to ogarnąć. Gdyby ten problem wyskoczył kilka dni wcześniej...

Sprawdziła się rzecz o której nie chciałem pisać, ponieważ wydawała mi się dosyć głupia. Otóż, myślałem, że skoro Cron ma wykonać zadanie każdego dnia, to oznacza, że zrobi to zaraz po włączeniu komputera, prawda? A jednak nie! Przed chwilą sprawdziłem katalog domowy użytkownika a tam... plik utworzony przez testowy skrypt. Wygląda na to, że cron wykonał zadanie jakiś czas po włączeniu systemu. Działa! Kolejna kompromitacja z mojej strony.

Dziękuję za odpowiedzi a szczególnie Arnowi za przypomnienie o istnieniu stron podręcznika. ;-)

Ostatnio edytowany przez remi (2012-10-21 12:02:46)


Łam ZAsady! wYjąTkÓw jest wIęcej.

Offline

 

#7  2012-10-21 10:12:35

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

remi napisał(-a):

Po ponownym uruchomieniu, skrypt nie zadziałał (nie utworzył pliku w katalogu domowym), czyli - według mnie - cron go nie odpalił.

Ale dlaczego miałby go według Ciebie odpalić po restarcie?

remi napisał(-a):

Ciekawe zdanie ze strony podręcznika cron

Pisałem wyżej o tym… Gdy Anacron jest zainstalowany, to przejmuje harmonogram wykonywania zadań (poza hourly).

Offline

 

#8  2012-11-07 20:19:58

  remi - amputować akrobatów

remi
amputować akrobatów
Zarejestrowany: 2011-05-27

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Serwus Arn. Dlaczego skrypt miał być uruchomiony po restarcie, tudzież uruchomieniu komputera? Wiesz, szczerze mówiąc, to nie mam pojęcia. Tak mi się po prostu wydawało i jak się okazało było to błędne założenie. Każdego dnia, wcale nie oznacza wykonania zadania od razu, np. po zalogowaniu się do systemu. Teraz to rozumiem i wiem, że wszystko jest okay.


Łam ZAsady! wYjąTkÓw jest wIęcej.

Offline

 

#9  2012-11-07 20:23:17

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Heh, niezły poślizg w odpowiedzi. ;)

Offline

 

#10  2012-11-08 22:18:30

  remi - amputować akrobatów

remi
amputować akrobatów
Zarejestrowany: 2011-05-27

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Hmm, no wiesz, jak to mówią; "lepiej późno niż wcale", right? ;-)


Łam ZAsady! wYjąTkÓw jest wIęcej.

Offline

 

#11  2012-11-08 22:20:56

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [Rozw.] Problem z wykonaniem skryptu z katalogu /etc/cron.daily

Indeed. :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)