[HILFE]Crontab Freebsd

08/05/2011 13:36 .Scare©®#1
hi com

ich weis nicht ob ich hier richtig bin, da es doch sehr viele Bereiche gibt.

meine Frage:

Ich habe ein Backup-Script auf meinem root, wen ich es manuell ausführe, geht es prima

aber wen ich es mit crontab starte (zum test jede minute) ist das erzeugte backup nur 20Bytes gross....

wo mach ich einen fehler?? kennt sich einer damit aus?

mfg

hier der crontab befehl

PHP Code:
*/* * * * /home/bu2.sh > /dev/null 
das script befindet sich in cd /home/
es hatt 777 rechte

mfg
08/05/2011 14:30 Gordge#2
ws sagt denn /var/log/messages?! was sagt das log vom cron?
wie lange benötigt das script, wenn du manuell sicherst für einen durchlauf?
08/05/2011 14:54 .Scare©®#3
PHP Code:
Aug  4 23:00:00 **** newsyslog[1389]: logfile turned over due to size>100K
Aug  5 09
:29:13 **** sshd[4246]: fatalWrite failedConnection reset by peer
Aug  5 09
:35:30 **** sshd[4372]: fatalWrite failedBroken pipe
Aug  5 13
:45:45 **** sshd[6329]: errorPAMauthentication error for root from **.**.**.**
Aug  5 13:45:49 **** sshd[6332]: errorPAMauthentication error for illegal user hscroot from **.**.**.**
Aug  5 13:45:52 **** sshd[6335]: errorPAMauthentication error for illegal user hscroot from **.**.**.**
Aug  5 13:45:56 **** sshd[6338]: errorPAMauthentication error for illegal user user from **.**.**.**
Aug  5 13:47:58 **** ntpd[963]: 2 out of 3 peers valid
Aug  5 13
:47:58 **** ntpd[963]: bad peer from pool pool.ntp.org (**.**.**.**) 
das steht da..
keine ahnung was das ist.

em wen ich es manuell ausführe dauert es ca 2-3 sec. dan hab ich all meine mysql tabellen zu einem .sql.gz format im verz. /backup...

hier das script

PHP Code:
#!/bin/sh
KEEP=31  # Anzahl der Backups die aufzubewahren sind
USER='****'
PASS='*******'  #hier PW angeben. wen es leer ist erscheint während dem Backup eine PW abfrage
DB='--all-databases' # für alle DB's setze auf '--all-databases'
BUPATH='/backup' # Verzeichnis für Backups 
host=127.0.0.1
port
=3306
BACKUPS
=`find $BUPATH -name $DB"-*.sql.gz" | wc -l | sed 's/\ //g'`
***********
zensiert**************
while [ 
$BACKUPS -ge $KEEP ]
do
ls -tr1 $BUPATH/$DB-*.sql.gz head -n 1 xargs rm -
***********zensiert**************
BACKUPS=`expr $BACKUPS - 1
done
DATE
=`date +%d.%m.%Y_%H:%M:%S`
rm -f $BUPATH/.$DB-${DATE}.sql.gz_INPROGRESS
***********zensiert**************
mysqldump $DB --opt -Q  -h$host --port=$port -u$USER -p$PASS gzip --$BUPATH/.$DB-${DATE}.sql.gz_INPROGRESS
mv 
-f $BUPATH/.$DB-${DATE}.sql.gz_INPROGRESS $BUPATH/$DB-${DATE}.sql.gz
exit 
hoffe das ihr mir hiier irgentwie weiterhelfen könnt.

mfg


Ps: das crontablog sagt. Mysqldump not found.......

Das ist ja aber nicht logisch... Da es supper klappt wen ich /home/bu2.sh eingebe.

Hoffe das jemand ne lösung jatt für mich.
08/06/2011 21:58 Daroolein#4
Soweit ich weiß ist
PHP Code:
BACKUPS=`expr $BACKUPS - 1
ein Bashismus...

PHP Code:
BACKUPS=$(( $BACKUPS-)) 
müsste richtig sein..

/Edit: Gib mal mysqldump als absoluten Pfad an, oder als Verweis

PHP Code:
MYSQLDMP=$(wich mysqldump
08/08/2011 01:44 .Scare©®#5
aber warum geht das scrippt wen ich es von hand mache?

nur wen ich es via cronetab mache geht es nicht.

emm könnte es sein das ich ein sleep einbinden muss oder sowas?