[cron] `zip` niet vanuit crontab?

Pagina: 1
Acties:

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 20-07 09:47
Ik heb een cronjob die om de zoveel tijd uitgevoerd moet worden, cron roept een backupscriptje aan dat een directory backuped, een database dumped naar een file en de boel netjes zipped (.zip i.p.v. .tar.bz2 vanwege Win32 comptability..)

cron werkt zoals het hoort, als ik dit in de crontab van root gooi:
code:
1
*/1 * * * * echo "test?" >> /tmp/testcron

wordt om de minuut (testsituatie, ik ga niet om de minuut de boel backuppen ;)) een regeltje bijgeschreven in /tmp/testcron.

Als ik mijn scriptje aanroep via de shell wordt alles netjes uitgevoerd, maar vanuit cron gebeurd er niets bij de zip aanroepen.. Ook haalt een directe aanroep van zip als cronjob (zip een file in /tmp naar /tmp/test.zip) niets uit.

Mag je vanuit cron niet zippen ofzo? Of heeft zip een bepaalde environment variabele nodig die hij in bash wel vind? :?

Verwijderd

Maak een bash scriptje voor het zippen en roep dat op vanuit cron.

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 20-07 09:47
Doe ik ook:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/bin/bash
#backup-script voor de <projectnaam verwijderd>
#aanroepen met pad van <projectnaam> www directory
#en naam van de gebruikte database
#default waarden:

DATABASE_NAAM='databasenaam'
WWW_PAD='/var/www/html/project'
ZIPFILE='projectbackup'
BACKUP_PAD='/tmp/projectbackup'

usagestring="usage: `basename $0` [-w projectdir] [-p backuppad] [-d database]"
flag=

if [ X"$1" = X ]
then
      echo "$usagestring"; exit 1
fi
for i
do
      case "$i" in
            --help )
                echo "$usagestring"; exit 1
            ;;
            -* )
                flag=${i:1}
            ;;
            * )
                case "$flag" in
                      d )
                            DATABASE_NAAM=$i
                      ;;
                      p )
                            BACKUP_PAD=$i
                      ;;
                      w )
                            WWW_PAD=$i
                      ;;
                      * )
                            echo "$usagestring"; exit 1
                      ;;
                esac
                flag=
            ;;
      esac
done

if [ ! -d $BACKUP_PAD ]
then
      mkdir -p $BACKUP_PAD
fi
cd $BACKUP_PAD

rm -rf ./*.zip
mysqldump $DATABASE_NAAM > /tmp/db.sql
zip -9qq /tmp/$ZIPFILE.database.zip /tmp/db.sql
rm -rf /tmp/db.sql
zip -9qqr /tmp/$ZIPFILE.bestanden.zip $WWW_PAD
mv /tmp/$ZIPFILE*.zip $BACKUP_PAD

exit 0

Be nice, dit is m'n eerste bash script. :Y)

Verwijderd

En als je een script maakt dat alleen de basics doet?

testzip.sh :
#!/bin/sh
/usr/bin/zip /tmp/blaat.zip /tmp/file-dat-je-wil-zippen
exit 0

chmod +x testzip.sh en in cron pleuren. Kijk ook eens of je verschil ziet tussen het gebruiken in de crontab van root en in /etc/crontab

Beetje vreemd overigens dat er geen foutmelding komt bij het direct aanroepen van zip vanuit cron. Ik roep direct 'rdist' aan in /etc/crontab en dat gaat perfect.

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 20-07 09:47
Ah gevonden, vanuit cron zit /usr/local/bin niet in het pad, vanuit bash wel, het scriptje werkt perfect met /usr/local/bin/zip.

Tnx.

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13:47

deadinspace

The what goes where now?

code:
1
2
3
4
[root@gemini marcelm]# crontab -l | head -3
MAILTO=root
SHELL=/bin/sh
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin

;)

Verwijderd

<ot>
bzip2 niet win32 compatible??? moet je winrar eens installen...
</ot>

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 20-07 09:47
deadinspace: 'k wist niet dat je je PATH daar kon neer planten, weer wat geleerd :)

r3b00t: klopt, maar de mensen die toegang hebben tot die files moeten ze kunnen openen op een default Windows install + WinZip. Helaas vallen de "leukere" compressieformaten dan af.
Pagina: 1