diff --git a/src/freedombone b/src/freedombone index 2b759ce3..44239a37 100755 --- a/src/freedombone +++ b/src/freedombone @@ -8318,50 +8318,57 @@ quit" > $INSTALL_DIR/batch.sql # Ensure that the database gets backed up locally, if remote # backups are not being used backup_databases_script_header - echo '' >> /usr/bin/backupdatabases - echo $'# Backup the GNU Social database' >> /usr/bin/backupdatabases - echo 'TEMPFILE=/root/gnusocial.sql' >> /usr/bin/backupdatabases - echo 'DAILYFILE=/var/backups/gnusocial_daily.sql' >> /usr/bin/backupdatabases - echo 'mysqldump --password="$MYSQL_PASSWORD" gnusocial > $TEMPFILE' >> /usr/bin/backupdatabases - echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> /usr/bin/backupdatabases - echo 'if [ "$FILESIZE" -eq "0" ]; then' >> /usr/bin/backupdatabases - echo ' if [ -f $DAILYFILE ]; then' >> /usr/bin/backupdatabases - echo ' cp $DAILYFILE $TEMPFILE' >> /usr/bin/backupdatabases - echo '' >> /usr/bin/backupdatabases - echo ' # try to restore yesterdays database' >> /usr/bin/backupdatabases - echo ' mysql -u root --password="$MYSQL_PASSWORD" gnusocial -o < $DAILYFILE' >> /usr/bin/backupdatabases - echo '' >> /usr/bin/backupdatabases - echo ' # Send a warning email' >> /usr/bin/backupdatabases - 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 - echo ' else' >> /usr/bin/backupdatabases - echo ' # Send a warning email' >> /usr/bin/backupdatabases - echo ' echo "Unable to create a backup of the GNU Social database." | mail -s "GNU Social backup" $EMAIL' >> /usr/bin/backupdatabases - echo ' fi' >> /usr/bin/backupdatabases - echo 'else' >> /usr/bin/backupdatabases - echo ' chmod 600 $TEMPFILE' >> /usr/bin/backupdatabases - echo ' mv $TEMPFILE $DAILYFILE' >> /usr/bin/backupdatabases - echo '' >> /usr/bin/backupdatabases - echo ' # Make the backup readable only by root' >> /usr/bin/backupdatabases - echo ' chmod 600 $DAILYFILE' >> /usr/bin/backupdatabases - echo 'fi' >> /usr/bin/backupdatabases - echo '' >> /etc/cron.weekly/backupdatabasesweekly - echo $'# GNU Social' >> /etc/cron.weekly/backupdatabasesweekly - echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly - echo ' cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_2weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly - echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly - echo 'if [ -f /var/backups/gnusocial_daily.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly - echo ' cp -f /var/backups/gnusocial_daily.sql /var/backups/gnusocial_weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly - echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly + if ! grep -q "GNU Social" /usr/bin/backupdatabases; then + echo '' >> /usr/bin/backupdatabases + echo $'# Backup the GNU Social database' >> /usr/bin/backupdatabases + echo 'TEMPFILE=/root/gnusocial.sql' >> /usr/bin/backupdatabases + echo 'DAILYFILE=/var/backups/gnusocial_daily.sql' >> /usr/bin/backupdatabases + echo 'mysqldump --password="$MYSQL_PASSWORD" gnusocial > $TEMPFILE' >> /usr/bin/backupdatabases + echo 'FILESIZE=$(stat -c%s $TEMPFILE)' >> /usr/bin/backupdatabases + echo 'if [ "$FILESIZE" -eq "0" ]; then' >> /usr/bin/backupdatabases + echo ' if [ -f $DAILYFILE ]; then' >> /usr/bin/backupdatabases + echo ' cp $DAILYFILE $TEMPFILE' >> /usr/bin/backupdatabases + echo '' >> /usr/bin/backupdatabases + echo ' # try to restore yesterdays database' >> /usr/bin/backupdatabases + echo ' mysql -u root --password="$MYSQL_PASSWORD" gnusocial -o < $DAILYFILE' >> /usr/bin/backupdatabases + echo '' >> /usr/bin/backupdatabases + echo ' # Send a warning email' >> /usr/bin/backupdatabases + 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 + echo ' else' >> /usr/bin/backupdatabases + echo ' # Send a warning email' >> /usr/bin/backupdatabases + echo ' echo "Unable to create a backup of the GNU Social database." | mail -s "GNU Social backup" $EMAIL' >> /usr/bin/backupdatabases + echo ' fi' >> /usr/bin/backupdatabases + echo 'else' >> /usr/bin/backupdatabases + echo ' chmod 600 $TEMPFILE' >> /usr/bin/backupdatabases + echo ' mv $TEMPFILE $DAILYFILE' >> /usr/bin/backupdatabases + echo '' >> /usr/bin/backupdatabases + echo ' # Make the backup readable only by root' >> /usr/bin/backupdatabases + echo ' chmod 600 $DAILYFILE' >> /usr/bin/backupdatabases + echo 'fi' >> /usr/bin/backupdatabases + fi - echo '' >> /etc/cron.monthly/backupdatabasesmonthly - echo $'# GNU Social' >> /etc/cron.monthly/backupdatabasesmonthly - echo 'if [ -f /var/backups/gnusocial_monthly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly - echo ' cp -f /var/backups/gnusocial_monthly.sql /var/backups/gnusocial_2monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly - echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly - echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly - echo ' cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly - echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly + if ! grep -q "GNU Social" /etc/cron.weekly/backupdatabasesweekly; then + echo '' >> /etc/cron.weekly/backupdatabasesweekly + echo $'# GNU Social' >> /etc/cron.weekly/backupdatabasesweekly + echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly + echo ' cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_2weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly + echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly + echo 'if [ -f /var/backups/gnusocial_daily.sql ]; then' >> /etc/cron.weekly/backupdatabasesweekly + echo ' cp -f /var/backups/gnusocial_daily.sql /var/backups/gnusocial_weekly.sql' >> /etc/cron.weekly/backupdatabasesweekly + echo 'fi' >> /etc/cron.weekly/backupdatabasesweekly + fi + + if ! grep -q "GNU Social" /etc/cron.monthly/backupdatabasesmonthly; then + echo '' >> /etc/cron.monthly/backupdatabasesmonthly + echo $'# GNU Social' >> /etc/cron.monthly/backupdatabasesmonthly + echo 'if [ -f /var/backups/gnusocial_monthly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly + echo ' cp -f /var/backups/gnusocial_monthly.sql /var/backups/gnusocial_2monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly + echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly + echo 'if [ -f /var/backups/gnusocial_weekly.sql ]; then' >> /etc/cron.monthly/backupdatabasesmonthly + echo ' cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly + echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly + fi if ! grep -q "gnusocial" /etc/cron.hourly/repair; then echo "${PROJECT_NAME}-repair-database gnusocial" >> /etc/cron.hourly/repair