Portál AbcLinuxu, 12. května 2025 05:17
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.