#!/bin/bash ## # Backup database with arhive LOGFILE=/backup/cloud_backup/log/script_log_file_`date +%F_%H-%M`.log BASEARHIVE=/backup/cloud_backup/data/db/woorder_py_db_`date +%F_%H-%M`.gz #path to B2 files CLOUDPATHDB=FOLDER/db CLOUDPATHMEDIA=FOLDER/media #db config PG_USER=USERNAME PG_DB=DATABASE PG_HOST=localhost DB_PATH=/backup/cloud_backup/data/db/ #media data MEDIAPATH=/var/www/data/ TARMEDIAPATH=/backup/cloud_backup/data/media/media_`date +%F_%H-%M`.tar.gz TARMEDIADIRPATH=/backup/cloud_backup/data/media/ # log filelist LOGPATH=/backup/cloud_backup/log LOG_ERROR=/backup/cloud_backup/log/error.log log(){ message="$(date +"%y-%m-%d %T") $@" echo $message >> $LOGFILE } #Start log "start script" # dump db log "start dump db" pg_dump -U $PG_USER -d $PG_DB -h $PG_HOST | gzip -9 > $BASEARHIVE ## uncomment if need dump logs ## 2> /home/support/cloud_backup/log/script_log_file.log sleep 1m # move database to cloud log "moving db files" /usr/sbin/rclone --log-file=$LOGPATH/log_`date +%F_%H-%M`_rclone.log move $DB_PATH cloud:$CLOUDPATHDB 2>> $LOG_ERROR sleep 1m # backup media files log "arhive media files" tar -czf $TARMEDIAPATH $MEDIAPATH sleep 1m # move files to cloud log "moving media files" /usr/sbin/rclone --log-file=$LOGPATH/log_`date +%F_%H-%M`_rclone.log move $TARMEDIADIRPATH cloud:$CLOUDPATHMEDIA 2>> $LOG_ERROR sleep 5s i=30 #days for save log file log "delete old logs" find $LOGPATH/ -type f -mtime +$i -print0 | xargs -0 rm -f sleep 5s log "stop script"