# Nie działający / źle skonfigurowany Cron

## Palio

nie działa mi Cron (Vixie-cron). 

```
localhost lastrun # crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/tmp/crontab.XXXXQPA2JZ installed on Fri Nov 24 18:17:40 2006)

# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)

# for vixie cron

#

# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.1 2005/03/04 23:59:48 ciaranm Exp $

#

#

# Global variables

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly

0  *  * * *     root    rm -f /var/spool/cron/lastrun/cron.hourly

1  3  * * *     root    rm -f /var/spool/cron/lastrun/cron.daily

15 4  * * 6     root    rm -f /var/spool/cron/lastrun/cron.weekly

30 5  1 * *     root    rm -f /var/spool/cron/lastrun/cron.monthly

*/10  *  * * *  root    test -x /usr/sbin/run-crons && /usr/sbin/run-crons

24 * * * *      root    scrot %Y-%m-%d_%H-%M.png -e mv $f /home/palio/Obrazy/screen/

53 * * * *      /home/palio/Dokumenty/zadaniescrot.sh

56 * * * *      /bin/run-parts /etc/cron.hourly

20 * * * *      root    mv /home/palio/pliczek /home/palio/pliczeczek

```

Ani nie wykonuje się zrzut ekranu (scrot), ani nie zmienia się nazwa pliku (mv /home/palio/pliczek)

```
localhost crond # more /var/log/crond/current

(...)

Nov 24 17:50:03 [cron] (root) MAIL (mailed 35 bytes of output but got status 0x0

001_)

Nov 24 17:53:01 [cron] (root) CMD (/home/palio/Dokumenty/zadaniescrot.sh)

Nov 24 17:53:03 [cron] (root) MAIL (mailed 59 bytes of output but got status 0x0

001_)

Nov 24 17:56:01 [cron] (root) CMD (/bin/run-parts /etc/cron.hourly)

Nov 24 17:56:03 [cron] (root) MAIL (mailed 120 bytes of output but got status 0x

0001_)

Nov 24 18:00:02 [cron] (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-

crons )

Nov 24 18:00:03 [cron] (root) CMD (root^Itest -x /usr/sbin/run-crons && /usr/sbi

n/run-crons )

Nov 24 18:00:04 [cron] (root) CMD (rm -f /var/spool/cron/lastrun/cron.hourly)

Nov 24 18:00:04 [cron] (root) CMD (root^Irm -f /var/spool/cron/lastrun/cron.hour

ly)

Nov 24 18:00:06 [cron] (root) MAIL (mailed 35 bytes of output but got status 0x0

001_)

                - Last output repeated twice -

Nov 24 18:00:08 [cron] (root) MAIL (mailed 59 bytes of output but got status 0x0

001_)

Nov 24 18:07:02 [crontab] (root) BEGIN EDIT (root)

Nov 24 18:08:55 [crontab] (root) END EDIT (root)

Nov 24 18:10:01 [cron] (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-

crons )

Nov 24 18:10:01 [cron] (root) CMD (root^Itest -x /usr/sbin/run-crons && /usr/sbi

n/run-crons )

Nov 24 18:10:03 [cron] (root) MAIL (mailed 35 bytes of output but got status 0x0

001_)

Nov 24 18:16:02 [cron] (palio) CMD (scrot ')

Nov 24 18:16:03 [cron] (palio) MAIL (mailed 125 bytes of output but got status 0

x0001_)

Nov 24 18:16:29 [crontab] (root) BEGIN EDIT (root)

Nov 24 18:17:40 [crontab] (root) REPLACE (root)

Nov 24 18:17:40 [crontab] (root) END EDIT (root)

Nov 24 18:18:01 [cron] (root) RELOAD (crontabs/root)

Nov 24 18:20:01 [cron] (root) CMD (test -x /usr/sbin/run-crons && /usr/sbin/run-

crons )

Nov 24 18:20:01 [cron] (root) CMD (root^Imv /home/palio/pliczek /home/palio/plic

zeczek)

Nov 24 18:20:01 [cron] (root) CMD (root^Itest -x /usr/sbin/run-crons && /usr/sbi

n/run-crons )

Nov 24 18:20:03 [cron] (root) MAIL (mailed 35 bytes of output but got status 0x0

001_)

```

aha, w katalogu domowym mam jeszcze dead.letter cały wypełniony przez:

```
/bin/sh: -c: line 0: unexpected EOF while looking for matching `''

/bin/sh: -c: line 1: syntax error: unexpected end of file

/bin/bash: -c: line 0: unexpected EOF while looking for matching `''

/bin/bash: -c: line 1: syntax error: unexpected end of file
```

Nie wiem jak się z tym uporać... Pomożecie?

----------

## aqu

Może lepiej napisz sobie skrypt do tego ? 

a w dead.letter tak ci tak zostaje ponieważ w którymś poleceniu masz błąd (dlatego mn. lepiej napisać skrypt, łatwiej się znajduje błędy).

-- EDITED I  --

Nie podałeś pełnego loga z całej godziny, więc nie wiadomo co zrzuca polecenie scrot.

-- EDITED II --

Możesz mieć też błędy w /home/palio/Dokumenty/zadaniescrot.sh  (sprawdź go ręcznie)

----------

## bartmarian

nie jestem pewny ale... czy klepnoles enterek po ostatnim wpisie

zeby w crontab ostatnia linia byla pusta ? nie chce mi sie teraz sprawdzac

ale CHYBA kiedys mialem taki problem

----------

## Arfrever

Oprócz tego mieszasz składnię tabeli cronu systemowej i danego użytkownika w tabeli danego użytkownika.

Tabela cronu systemowa ("/etc/crontab"):

```
<Minuta> <Godzina> <Dzień> <Miesiąc> <Dzień tygodnia> <Użytkownik> <Polecenie>
```

Tabela cronu danego użytkownika:

```
<Minuta> <Godzina> <Dzień> <Miesiąc> <Dzień tygodnia> <Polecenie>
```

Sveikinu

Arfrever

----------

## otokan

```

maggot@tux ~ $ scrot %Y-%m-%d_%H-%M.png -e mv $f /tmp/                     

giblib warning: unrecognised option /tmp/

mv: missing file operand

Try `mv --help' for more information.

maggot@tux ~ $ scrot %Y-%m-%d_%H-%M.png -e 'mv $f /tmp/'

maggot@tux ~ $ 

```

DODANO:

Poza tym chyba będziesz musiał ustawić zmienną DISPLAY żeby scrot wiedział skąd ten zrzut ekranu ma wziąć

PozdrawiamLast edited by otokan on Sat Nov 25, 2006 1:17 pm; edited 1 time in total

----------

## Palio

 *aqu wrote:*   

> Może lepiej napisz sobie skrypt do tego ? 

 Do czego? *aqu wrote:*   

> (sprawdź go ręcznie)

 Oczywiście sprawdzałem, działa. *bartmarian wrote:*   

> czy klepnoles enterek po ostatnim wpisie

 wiem o tym, ostatnią linijkę mam pustą

 *Quote:*   

> localhost palio # crontab -l
> 
> # DO NOT EDIT THIS FILE - edit the master and reinstall.
> 
> # (/tmp/crontab.XXXXMqdK9k installed on Sat Nov 25 13:33:04 2006)
> ...

 

 *Quote:*   

> ov 25 13:45:14 [crontab] (root) LIST (root)
> 
> Nov 25 13:46:01 [cron] (root) RELOAD (crontabs/root)
> 
> Nov 25 13:47:01 [cron] (root) CMD (root^Iscrot )
> ...

 

----------

## Palio

otokanscrot mi dziala, problem jest w cronie. Nawet pliczek pozostaje pliczkiem (komenda mv w tabeli crona)

----------

## otokan

Jak Ci działa bez cudzysłowów to ja już nic nie rozumiem. Bash w poleceniu 

```

scrot %Y-%m-%d_%H-%M.png -e mv $f /home/palio/Obrazy/screen/

```

zamienia $f na wartość tej zmiennej zanim jeszcze uruchomi scrota, poza tym tylko pierwszy wyraz (atom) po opcji -e jest traktowany jako polecenie, reszta jako kolejne argumenty lub opcje;

Przypominam o ustawieniu zmiennej DISPLAY.

Pozdrawiam

----------

## Palio

Scrot działa bez apostrofów. Problem nie jest w nim tylko w tabelach Crona, bo żadne zadanie nie chce sie wykonać! Ani scrot ani mv ani cokolwiek innego co bym dopisał...  :Sad: 

----------

## Arfrever

 *Palio wrote:*   

> Problem nie jest w nim tylko w tabelach Crona

 

Pokaż ich obecne wersje.

Sveikinu

Arfrever

----------

## Palio

```
localhost palio # crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.

# (/tmp/crontab.XXXXMqdK9k installed on Sat Nov 25 13:33:04 2006)

# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)

# for vixie cron

#

# $Header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0.1-r4,v 1.1 2005/03/04 23:59:48 ciaranm Exp $

#

#

# Global variables

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly

0 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly

1 3 * * * root rm -f /var/spool/cron/lastrun/cron.daily

15 4 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly

30 5 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly

*/10 * * * * root test -x /usr/sbin/run-crons && /usr/sbin/run-crons

47 * * * * root scrot %Y-%m-%d_%H-%M.png -e mv $f /home/palio/Obrazy/screen/

48 * * * * root /home/palio/Dokumenty/zadaniescrot.sh

56 * * * * root /bin/run-parts /etc/cron.hourly

49 * * * * root mv /home/palio/pliczek /home/palio/pliczeczek 
```

----------

## Arfrever

Zmieniłeś składnię, ale w złą stronę. Usuń wszystkie "root" z poleceń do uruchomienia.

Sveikinu

Arfrever

----------

## Palio

Nic to nie zmienia, dalej nie działa. Poza tym jest to tabela systemowa więc kolumna user powinna być chyba wypełniona.

----------

## Arfrever

 *Palio wrote:*   

> Poza tym jest to tabela systemowa więc kolumna user powinna być chyba wypełniona.

 

Program `crontab` służy do edycji tabeli danego użytkownika ("/var/spool/cron/crontabs/<Użytkownik>"). Tabela systemowa to "/etc/crontab".

Sveikinu

Arfrever

----------

