Bob Mottram 9 years ago
parent
commit
ba8f72ad91
1 changed files with 49 additions and 42 deletions
  1. 49
    42
      src/freedombone

+ 49
- 42
src/freedombone View File

@@ -8318,50 +8318,57 @@ quit" > $INSTALL_DIR/batch.sql
8318 8318
     # Ensure that the database gets backed up locally, if remote
8319 8319
     # backups are not being used
8320 8320
     backup_databases_script_header
8321
-    echo '' >> /usr/bin/backupdatabases
8322
-    echo $'# Backup the GNU Social database' >> /usr/bin/backupdatabases
8323
-    echo 'TEMPFILE=/root/gnusocial.sql' >> /usr/bin/backupdatabases
8324
-    echo 'DAILYFILE=/var/backups/gnusocial_daily.sql' >> /usr/bin/backupdatabases
8325
-    echo 'mysqldump --password="$MYSQL_PASSWORD" gnusocial > $TEMPFILE' >> /usr/bin/backupdatabases
8326
-    echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> /usr/bin/backupdatabases
8327
-    echo 'if [ "$FILESIZE" -eq "0" ]; then' >> /usr/bin/backupdatabases
8328
-    echo '    if [ -f $DAILYFILE ]; then' >> /usr/bin/backupdatabases
8329
-    echo '        cp $DAILYFILE $TEMPFILE' >> /usr/bin/backupdatabases
8330
-    echo '' >> /usr/bin/backupdatabases
8331
-    echo '        # try to restore yesterdays database' >> /usr/bin/backupdatabases
8332
-    echo '        mysql -u root --password="$MYSQL_PASSWORD" gnusocial -o < $DAILYFILE' >> /usr/bin/backupdatabases
8333
-    echo '' >> /usr/bin/backupdatabases
8334
-    echo '        # Send a warning email' >> /usr/bin/backupdatabases
8335
-    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
8336
-    echo '    else' >> /usr/bin/backupdatabases
8337
-    echo '        # Send a warning email' >> /usr/bin/backupdatabases
8338
-    echo '        echo "Unable to create a backup of the GNU Social database." | mail -s "GNU Social backup" $EMAIL' >> /usr/bin/backupdatabases
8339
-    echo '    fi' >> /usr/bin/backupdatabases
8340
-    echo 'else' >> /usr/bin/backupdatabases
8341
-    echo '    chmod 600 $TEMPFILE' >> /usr/bin/backupdatabases
8342
-    echo '    mv $TEMPFILE $DAILYFILE' >> /usr/bin/backupdatabases
8343
-    echo '' >> /usr/bin/backupdatabases
8344
-    echo '    # Make the backup readable only by root' >> /usr/bin/backupdatabases
8345
-    echo '    chmod 600 $DAILYFILE' >> /usr/bin/backupdatabases
8346
-    echo 'fi' >> /usr/bin/backupdatabases
8347 8321
 
8348
-    echo '' >> /etc/cron.weekly/backupdatabasesweekly
8349
-    echo $'# GNU Social' >> /etc/cron.weekly/backupdatabasesweekly
8350
-    echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly
8351
-    echo '  cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_2weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly
8352
-    echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly
8353
-    echo 'if [ -f /var/backups/gnusocial_daily.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly
8354
-    echo '  cp -f /var/backups/gnusocial_daily.sql /var/backups/gnusocial_weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly
8355
-    echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly
8322
+    if ! grep -q "GNU Social" /usr/bin/backupdatabases; then
8323
+        echo '' >> /usr/bin/backupdatabases
8324
+        echo $'# Backup the GNU Social database' >> /usr/bin/backupdatabases
8325
+        echo 'TEMPFILE=/root/gnusocial.sql' >> /usr/bin/backupdatabases
8326
+        echo 'DAILYFILE=/var/backups/gnusocial_daily.sql' >> /usr/bin/backupdatabases
8327
+        echo 'mysqldump --password="$MYSQL_PASSWORD" gnusocial > $TEMPFILE' >> /usr/bin/backupdatabases
8328
+        echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> /usr/bin/backupdatabases
8329
+        echo 'if [ "$FILESIZE" -eq "0" ]; then' >> /usr/bin/backupdatabases
8330
+        echo '    if [ -f $DAILYFILE ]; then' >> /usr/bin/backupdatabases
8331
+        echo '        cp $DAILYFILE $TEMPFILE' >> /usr/bin/backupdatabases
8332
+        echo '' >> /usr/bin/backupdatabases
8333
+        echo '        # try to restore yesterdays database' >> /usr/bin/backupdatabases
8334
+        echo '        mysql -u root --password="$MYSQL_PASSWORD" gnusocial -o < $DAILYFILE' >> /usr/bin/backupdatabases
8335
+        echo '' >> /usr/bin/backupdatabases
8336
+        echo '        # Send a warning email' >> /usr/bin/backupdatabases
8337
+        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
8338
+        echo '    else' >> /usr/bin/backupdatabases
8339
+        echo '        # Send a warning email' >> /usr/bin/backupdatabases
8340
+        echo '        echo "Unable to create a backup of the GNU Social database." | mail -s "GNU Social backup" $EMAIL' >> /usr/bin/backupdatabases
8341
+        echo '    fi' >> /usr/bin/backupdatabases
8342
+        echo 'else' >> /usr/bin/backupdatabases
8343
+        echo '    chmod 600 $TEMPFILE' >> /usr/bin/backupdatabases
8344
+        echo '    mv $TEMPFILE $DAILYFILE' >> /usr/bin/backupdatabases
8345
+        echo '' >> /usr/bin/backupdatabases
8346
+        echo '    # Make the backup readable only by root' >> /usr/bin/backupdatabases
8347
+        echo '    chmod 600 $DAILYFILE' >> /usr/bin/backupdatabases
8348
+        echo 'fi' >> /usr/bin/backupdatabases
8349
+    fi
8356 8350
 
8357
-    echo '' >> /etc/cron.monthly/backupdatabasesmonthly
8358
-    echo $'# GNU Social' >> /etc/cron.monthly/backupdatabasesmonthly
8359
-    echo 'if [ -f /var/backups/gnusocial_monthly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly
8360
-    echo '  cp -f /var/backups/gnusocial_monthly.sql /var/backups/gnusocial_2monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
8361
-    echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
8362
-    echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly
8363
-    echo '  cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
8364
-    echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
8351
+    if ! grep -q "GNU Social" /etc/cron.weekly/backupdatabasesweekly; then
8352
+        echo '' >> /etc/cron.weekly/backupdatabasesweekly
8353
+        echo $'# GNU Social' >> /etc/cron.weekly/backupdatabasesweekly
8354
+        echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly
8355
+        echo '  cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_2weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly
8356
+        echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly
8357
+        echo 'if [ -f /var/backups/gnusocial_daily.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly
8358
+        echo '  cp -f /var/backups/gnusocial_daily.sql /var/backups/gnusocial_weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly
8359
+        echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly
8360
+    fi
8361
+
8362
+    if ! grep -q "GNU Social" /etc/cron.monthly/backupdatabasesmonthly; then
8363
+        echo '' >> /etc/cron.monthly/backupdatabasesmonthly
8364
+        echo $'# GNU Social' >> /etc/cron.monthly/backupdatabasesmonthly
8365
+        echo 'if [ -f /var/backups/gnusocial_monthly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly
8366
+        echo '  cp -f /var/backups/gnusocial_monthly.sql /var/backups/gnusocial_2monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
8367
+        echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
8368
+        echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly
8369
+        echo '  cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
8370
+        echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
8371
+    fi
8365 8372
 
8366 8373
     if ! grep -q "gnusocial" /etc/cron.hourly/repair; then
8367 8374
         echo "${PROJECT_NAME}-repair-database gnusocial" >> /etc/cron.hourly/repair