|
|
|
|
3263
|
fi
|
3263
|
fi
|
3264
|
}
|
3264
|
}
|
3265
|
|
3265
|
|
|
|
3266
|
+function repair_databases_script {
|
|
|
3267
|
+ if grep -Fxq "repair_databases_script" $COMPLETION_FILE; then
|
|
|
3268
|
+ return
|
|
|
3269
|
+ fi
|
|
|
3270
|
+ echo '#!/bin/bash' > /usr/bin/repairdatabase
|
|
|
3271
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3272
|
+ echo 'DATABASE=$1' >> /usr/bin/repairdatabase
|
|
|
3273
|
+ echo "EMAIL=$MY_USERNAME@$DOMAIN_NAME" >> /usr/bin/repairdatabase
|
|
|
3274
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3275
|
+ echo "MYSQL_ROOT_PASSWORD='$MARIADB_PASSWORD'" >> /usr/bin/repairdatabase
|
|
|
3276
|
+ echo 'TEMPFILE=/root/repairdatabase_$DATABASE' >> /usr/bin/repairdatabase
|
|
|
3277
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3278
|
+ echo 'umask 0077' >> /usr/bin/repairdatabase
|
|
|
3279
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3280
|
+ echo '# check the database' >> /usr/bin/repairdatabase
|
|
|
3281
|
+ echo 'mysqlcheck -c -u root --password=$MYSQL_ROOT_PASSWORD $DATABASE > $TEMPFILE' >> /usr/bin/repairdatabase
|
|
|
3282
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3283
|
+ echo '# Attempt to repair the database if it contains errors' >> /usr/bin/repairdatabase
|
|
|
3284
|
+ echo 'if grep -q "Error" "$TEMPFILE"; then' >> /usr/bin/repairdatabase
|
|
|
3285
|
+ echo ' mysqlcheck -u root --password=$MYSQL_ROOT_PASSWORD --auto-repair $DATABASE' >> /usr/bin/repairdatabase
|
|
|
3286
|
+ echo 'else' >> /usr/bin/repairdatabase
|
|
|
3287
|
+ echo ' # No errors were found, so exit' >> /usr/bin/repairdatabase
|
|
|
3288
|
+ echo ' rm -f $TEMPFILE' >> /usr/bin/repairdatabase
|
|
|
3289
|
+ echo ' exit 0' >> /usr/bin/repairdatabase
|
|
|
3290
|
+ echo 'fi' >> /usr/bin/repairdatabase
|
|
|
3291
|
+ echo 'rm -f $TEMPFILE' >> /usr/bin/repairdatabase
|
|
|
3292
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3293
|
+ echo '# Check the database again' >> /usr/bin/repairdatabase
|
|
|
3294
|
+ echo 'mysqlcheck -c -u root --password=$MYSQL_ROOT_PASSWORD $DATABASE > $TEMPFILE' >> /usr/bin/repairdatabase
|
|
|
3295
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3296
|
+ echo '# If it still contains errors then restore from backup' >> /usr/bin/repairdatabase
|
|
|
3297
|
+ echo 'if grep -q "Error" "$TEMPFILE"; then' >> /usr/bin/repairdatabase
|
|
|
3298
|
+ echo ' mysql -u root --password=$MYSQL_ROOT_PASSWORD $DATABASE -o < /var/backups/${DATABASE}_daily.sql' >> /usr/bin/repairdatabase
|
|
|
3299
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3300
|
+ echo ' # Send a warning email' >> /usr/bin/repairdatabase
|
|
|
3301
|
+ echo ' echo "$DATABASE database corruption could not be repaired. Restored from backup." | mail -s "Freedombone database maintenance" $EMAIL' >> /usr/bin/repairdatabase
|
|
|
3302
|
+ echo ' rm -f $TEMPFILE' >> /usr/bin/repairdatabase
|
|
|
3303
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3304
|
+ echo ' exit 1' >> /usr/bin/repairdatabase
|
|
|
3305
|
+ echo 'fi' >> /usr/bin/repairdatabase
|
|
|
3306
|
+ echo 'rm -f $TEMPFILE' >> /usr/bin/repairdatabase
|
|
|
3307
|
+ echo '' >> /usr/bin/repairdatabase
|
|
|
3308
|
+ echo 'exit 0' >> /usr/bin/repairdatabase
|
|
|
3309
|
+ chmod 600 /usr/bin/repairdatabase
|
|
|
3310
|
+ chmod +x /usr/bin/repairdatabase
|
|
|
3311
|
+
|
|
|
3312
|
+ echo '#!/bin/bash' > /etc/cron.hourly/repair
|
|
|
3313
|
+ echo '' >> /etc/cron.hourly/repair
|
|
|
3314
|
+ chmod 600 /etc/cron.hourly/repair
|
|
|
3315
|
+ chmod +x /etc/cron.hourly/repair
|
|
|
3316
|
+
|
|
|
3317
|
+ echo 'repair_databases_script' >> $COMPLETION_FILE
|
|
|
3318
|
+}
|
|
|
3319
|
+
|
3266
|
function install_gnu_social {
|
3320
|
function install_gnu_social {
|
3267
|
if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
|
3321
|
if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
|
3268
|
return
|
3322
|
return
|
|
|
|
|
3276
|
|
3330
|
|
3277
|
install_mariadb
|
3331
|
install_mariadb
|
3278
|
get_mariadb_password
|
3332
|
get_mariadb_password
|
|
|
3333
|
+ repair_databases_script
|
3279
|
|
3334
|
|
3280
|
apt-get -y --force-yes install php-gettext php5-curl php5-gd php5-mysql git
|
3335
|
apt-get -y --force-yes install php-gettext php5-curl php5-gd php5-mysql git
|
3281
|
|
3336
|
|
|
|
|
|
3488
|
echo ' cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
|
3543
|
echo ' cp -f /var/backups/gnusocial_weekly.sql /var/backups/gnusocial_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
|
3489
|
echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
|
3544
|
echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
|
3490
|
|
3545
|
|
|
|
3546
|
+ echo '/usr/bin/repairdatabase gnusocial' >> /etc/cron.hourly/repair
|
|
|
3547
|
+
|
3491
|
nginx_ensite $MICROBLOG_DOMAIN_NAME
|
3548
|
nginx_ensite $MICROBLOG_DOMAIN_NAME
|
3492
|
service php5-fpm restart
|
3549
|
service php5-fpm restart
|
3493
|
service nginx restart
|
3550
|
service nginx restart
|
|
|
|
|
3552
|
|
3609
|
|
3553
|
install_mariadb
|
3610
|
install_mariadb
|
3554
|
get_mariadb_password
|
3611
|
get_mariadb_password
|
|
|
3612
|
+ repair_databases_script
|
3555
|
|
3613
|
|
3556
|
apt-get -y --force-yes install php5-common php5-cli php5-curl php5-gd php5-mysql php5-mcrypt git git
|
3614
|
apt-get -y --force-yes install php5-common php5-cli php5-curl php5-gd php5-mysql php5-mcrypt git git
|
3557
|
|
3615
|
|
|
|
|
|
3767
|
echo ' cp -f /var/backups/redmatrix_weekly.sql /var/backups/redmatrix_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
|
3825
|
echo ' cp -f /var/backups/redmatrix_weekly.sql /var/backups/redmatrix_monthly.sql' >> /etc/cron.monthly/backupdatabasesmonthly
|
3768
|
echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
|
3826
|
echo 'fi' >> /etc/cron.monthly/backupdatabasesmonthly
|
3769
|
|
3827
|
|
|
|
3828
|
+ echo '/usr/bin/repairdatabase redmatrix' >> /etc/cron.hourly/repair
|
|
|
3829
|
+
|
3770
|
nginx_ensite $REDMATRIX_DOMAIN_NAME
|
3830
|
nginx_ensite $REDMATRIX_DOMAIN_NAME
|
3771
|
service php5-fpm restart
|
3831
|
service php5-fpm restart
|
3772
|
service nginx restart
|
3832
|
service nginx restart
|