mentes script cron ból

Fórumok

Ahoy,

Van egy scriptem, ami tar segítségével mentést végez.1gb-os fállokat hoz létre, egy bizonyos könyvtárból.
A probléma az, hogy a scriptet shell-ből futtatva tökéletesen működik, de ha cron-ból hívom meg, akkor a létrehozott tar fájl, csak a könyvtárakat tartalmazza, a fájlokat nem.

Hozzászólások

Konkrétat nem tudok mondani, de általában a cron szkript ha nem működik, az azért van, mert a cronból indítva nem ugyanazokkal a környezeti változókkal indul, mint parancssorból.

Guglin erre keresve: crontab environment

Az egyik találat ez:

http://blog.spikesource.com/crontab.htm

Itt kb elmagyarázza, hogy miről van szó, meg megoldási javaslatot is ad. Amúgy én is épp hasonlóval szívok, ha megoldottam beposztolom.


oregon:~$ cat /etc/crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# Perc(0-59)    Óra(0-23)   Nap(1-31)   Hónap(1-12)   Hétnapjai(0-6)   Felhasznó    Alkalmazás

Anno szenvedtem hasonlók miatt, de csak egy gépen jött elő. Szigszalagos megoldásként az lett, hogy:
su - -c "/ahol_a_script_van/script"

Hello!

crontabból szeretném futtatni az alábbi parancsot:

/usr/bin/mysqldump -u root --password=jelszo --databases egyik masik harmadik > /var/mysqldump/mysqldump`/bin/date +%G%m%d`

Ez parancssorból szépen megy, de crontabból futtatva az alábbi hibaüzenetet írja a mail-be:

/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file

Mi lehet a probléma?

Petya

RTFM.

Rendes oprendszeren szerepel a dokumentációban, hogy a cron a crontab fájlban a % jelet speciálisan értelmezi.

FreeBSD> man 5 crontab

The entire command portion of the line, up to a newline or % char-
acter, will be executed by /bin/sh or by the shell specified in the SHELL
variable of the cronfile. 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.