소스 검색

Improved Friendica backup

Bob Mottram 11 년 전
부모
커밋
b386f92e86
1개의 변경된 파일39개의 추가작업 그리고 26개의 파일을 삭제
  1. 39
    26
      beaglebone.txt

+ 39
- 26
beaglebone.txt 파일 보기

@@ -4226,7 +4226,7 @@ Make sure that the database gets backed up.  By using cron if anything goes wron
4226 4226
 editor /etc/cron.daily/backup
4227 4227
 #+END_SRC
4228 4228
 
4229
-Enter the following, replacing /myusername@mydomainname.com/ with your email address.
4229
+Enter the following, replacing /myusername@mydomainname.com/ with your email address and the mysql root password as appropriate.
4230 4230
 
4231 4231
 #+BEGIN_SRC: bash
4232 4232
 #!/bin/sh
@@ -4242,44 +4242,57 @@ service apache2 stop
4242 4242
 # Save to a temporary file first so that it can be checked for non-zero size
4243 4243
 TEMPFILE=/tmp/friendicared.sql
4244 4244
 
4245
-# Backup the database
4245
+# Backup the Friendica database
4246
+DAILYFILE=/var/backups/friendica_daily.sql
4246 4247
 mysqldump --password=$MYSQL_PASSWORD friendica > $TEMPFILE
4247 4248
 FILESIZE=$(stat -c%s $TEMPFILE)
4248 4249
 if [ "$FILESIZE" -eq "0" ]; then
4249
-    # restart the web server
4250
-    service apache2 start
4250
+    if [ -f $DAILYFILE ]; then
4251
+        cp $DAILYFILE $TEMPFILE
4251 4252
 
4252
-	# Send a warning email
4253
-	echo "Unable to create a backup of the Friendica database" | mail -s "Friendica backup" $EMAIL
4253
+        # try to restore yesterday's database
4254
+        mysql -D friendica -o < $DAILYFILE
4254 4255
 
4255
-    exit 1
4256
+        # Send a warning email
4257
+        echo "Unable to create a backup of the Friendica database. Attempted to restore from yesterday's backup." | mail -s "Friendica backup" $EMAIL
4258
+	else
4259
+        # Send a warning email
4260
+        echo "Unable to create a backup of the Friendica database." | mail -s "Friendica backup" $EMAIL
4261
+    fi
4262
+else
4263
+    chmod 600 $TEMPFILE
4264
+    mv $TEMPFILE $DAILYFILE
4265
+
4266
+    # Make the backup readable only by root
4267
+    chmod 600 $DAILYFILE
4256 4268
 fi
4257 4269
 
4258
-chmod 600 $TEMPFILE
4259
-mv $TEMPFILE /var/backups/friendica_daily.sql
4260 4270
 
4261
-# Make the backup readable only by root
4262
-chmod 600 /var/backups/friendica_daily.sql
4263
-
4264
-# Backup the database
4271
+# Backup the Red Matrix database
4272
+DAILYFILE=/var/backups/redmatrix_daily.sql
4265 4273
 #mysqldump --password=$MYSQL_PASSWORD redmatrix > $TEMPFILE
4266
-
4267 4274
 #FILESIZE=$(stat -c%s $TEMPFILE)
4268 4275
 #if [ "$FILESIZE" -eq "0" ]; then
4269
-#    # restart the web server
4270
-#    service apache2 start
4271
-
4272
-#	# Send a warning email
4273
-#	echo "Unable to create a backup of the Red Matrix database" | mail -s "Red Matrix backup" $EMAIL
4274
-
4275
-#    exit 2
4276
+#    if [ -f $DAILYFILE ]; then
4277
+#        cp $DAILYFILE $TEMPFILE
4278
+
4279
+#        # try to restore yesterday's database
4280
+#        mysql -D redmatrix -o < $DAILYFILE
4281
+
4282
+#        # Send a warning email
4283
+#        echo "Unable to create a backup of the Red Matrix database. Attempted to restore from yesterday's backup" | mail -s "Red Matrix backup" $EMAIL
4284
+#	else
4285
+#        # Send a warning email
4286
+#        echo "Unable to create a backup of the Red Matrix database." | mail -s "Red Matrix backup" $EMAIL
4287
+#    fi
4288
+#else
4289
+#    chmod 600 $TEMPFILE
4290
+#    mv $TEMPFILE $DAILYFILE
4291
+
4292
+#    # Make the backup readable only by root
4293
+#    chmod 600 $DAILYFILE
4276 4294
 #fi
4277 4295
 
4278
-#chmod 600 $TEMPFILE
4279
-#mv $TEMPFILE /var/backups/redmatrix_daily.sql
4280
-
4281
-# Make the backup readable only by root
4282
-#chmod 600 /var/backups/redmatrix_daily.sql
4283 4296
 
4284 4297
 # restart the web server
4285 4298
 service apache2 start