소스 검색

Daily backup of GNU Social database

Bob Mottram 10 년 전
부모
커밋
93de4e1926
1개의 변경된 파일30개의 추가작업 그리고 0개의 파일을 삭제
  1. 30
    0
      install-freedombone.sh

+ 30
- 0
install-freedombone.sh 파일 보기

@@ -3419,6 +3419,36 @@ quit" > $INSTALL_DIR/batch.sql
3419 3419
       makecert $MICROBLOG_DOMAIN_NAME
3420 3420
   fi
3421 3421
 
3422
+  # Ensure that the database gets backed up locally, if remote
3423
+  # backups are not being used
3424
+  backup_databases_script_header
3425
+  echo '' >> /usr/bin/backupdatabases
3426
+  echo '# Backup the GNU Social database' >> /usr/bin/backupdatabases
3427
+  echo 'TEMPFILE=/root/gnusocial.sql' >> /usr/bin/backupdatabases
3428
+  echo 'DAILYFILE=/var/backups/gnusocial_daily.sql' >> /usr/bin/backupdatabases
3429
+  echo 'mysqldump --password=$MYSQL_PASSWORD gnusocial > $TEMPFILE' >> /usr/bin/backupdatabases
3430
+  echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> /usr/bin/backupdatabases
3431
+  echo 'if [ "$FILESIZE" -eq "0" ]; then' >> /usr/bin/backupdatabases
3432
+  echo '    if [ -f $DAILYFILE ]; then' >> /usr/bin/backupdatabases
3433
+  echo '        cp $DAILYFILE $TEMPFILE' >> /usr/bin/backupdatabases
3434
+  echo '' >> /usr/bin/backupdatabases
3435
+  echo '        # try to restore yesterdays database' >> /usr/bin/backupdatabases
3436
+  echo '        mysql -u root --password=$MYSQL_PASSWORD gnusocial -o < $DAILYFILE' >> /usr/bin/backupdatabases
3437
+  echo '' >> /usr/bin/backupdatabases
3438
+  echo '        # Send a warning email' >> /usr/bin/backupdatabases
3439
+  echo '        echo "Unable to create a backup of the GNU Social database. Attempted to restore from yesterdays backup" | mail -s "GNU Social backup" $EMAIL' >> /usr/bin/backupdatabases
3440
+  echo '    else' >> /usr/bin/backupdatabases
3441
+  echo '        # Send a warning email' >> /usr/bin/backupdatabases
3442
+  echo '        echo "Unable to create a backup of the GNU Social database." | mail -s "GNU Social backup" $EMAIL' >> /usr/bin/backupdatabases
3443
+  echo '    fi' >> /usr/bin/backupdatabases
3444
+  echo 'else' >> /usr/bin/backupdatabases
3445
+  echo '    chmod 600 $TEMPFILE' >> /usr/bin/backupdatabases
3446
+  echo '    mv $TEMPFILE $DAILYFILE' >> /usr/bin/backupdatabases
3447
+  echo '' >> /usr/bin/backupdatabases
3448
+  echo '    # Make the backup readable only by root' >> /usr/bin/backupdatabases
3449
+  echo '    chmod 600 $DAILYFILE' >> /usr/bin/backupdatabases
3450
+  echo 'fi' >> /usr/bin/backupdatabases
3451
+
3422 3452
   nginx_ensite $MICROBLOG_DOMAIN_NAME
3423 3453
   service php5-fpm restart
3424 3454
   service nginx restart