Portál AbcLinuxu, 13. listopadu 2025 15:02
Ahoj, hledal jsem nějaký elegantní způsob (nejlépe v php) jak cronem zazálohovat nějaká data (konkrétně php soubory jedné aplikace a sql tabulky - mysql).
Pár scriptů jsem našel, ale vždy jsem narazil na komentáře o bezpečnosti tohoto daného řešení, tak se ptám, dá se to vůbec bezpečně (co se týče ztráty dat) udělat?
Děkuji
Řešení dotazu:
tar -czf mojephpdata-www.tar.gz /srv/www/aplikace
mysqldump --user=dumpuser --password=heslo --add-drop-database --add-drop-table --add-locks --all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --single-transaction --max_allowed_packet=4M > mysql-data.sql
gzip -9 mysql-data.sql
#!/bin/bash
ADMIN="jmeno@domena.primarni jmeno@domena.zalozni"
HOSTNAME=`/bin/hostname`
FROM="backup@$HOSTNAME"
NOWDATE=`date +%F`
HOMEBCKP="/nejaky/treba/nfs/disk"
COUNTBCKP=14
myexit(){
logger -p error "backup: Failure. Message: $1"
echo "BACKUP ERROR !!! on ${HOSTNAME} Message: $1" | /usr/bin/mailx \
-s "BACKUP ERROR: ${HOSTNAME}" -r ${FROM} ${ADMIN}
exit $2
}
#to backup directory
cd $HOMEBCKP
if [ $? != 0 ]; then
myexit "Error: directory $HOMEBCKP not exists" 1
fi
let "COUNTBCKP = $COUNTBCKP - 1"
#delete old backups, '2*' - only directory begin '2' - for sure :)
find ./ -depth -mtime +$COUNTBCKP -path "./2*" -delete
if [ $? != 0 ]; then
myexit "Error: delete old backups " 109
fi
mkdir $NOWDATE
if [ $? != 0 ]; then
myexit "Error: create backup directory " 2
fi
cd $HOMEBCKP/$NOWDATE
if [ $? != 0 ]; then
myexit "Error: directory $HOMEBCKP/$NOWDATE not exists" 3
fi
#dump Sql
mysqldump --user=dumpuser --password=heslo --add-drop-database --add-drop-table --add-locks --all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --single-transaction --max_allowed_packet=4M > $HOSTNAME-mysql-$NOWDATE.sql
if [ $? != 0 ]; then
myexit "Error: sql dump error" 10
fi
gzip -9 $HOSTNAME-mysql-$NOWDATE.sql
if [ $? != 0 ]; then
myexit "Error: gzip sql error" 11
fi
#www
cd /srv
if [ $? != 0 ]; then
myexit "Error: cd /srv/" 21
fi
tar -czf $HOMEBCKP/$NOWDATE/$HOSTNAME-www.tar.gz www
if [ $? != 0 ]; then
myexit "Error: tar -czf www" 22
fi
logger -p info "backup: OK"
exit 0
--single-transaction--lock-all-tables.mysqldump --user=dumpuser --password=heslo --add-drop-database --add-drop-table --add-locks --all-databases --comments --create-options --disable-keys --flush-logs --hex-blob --routines --lock-all-tables --max_allowed_packet=4M > mysql-data.sql
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.