backup to external device now possible without encryption. Before this
the daily backup did allow LUKS+ext4 compatible file system only.
This commit is contained in:
parent
9b3b2efe9a
commit
9fa6593d7f
@ -118,6 +118,51 @@ function check_sanity {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_config {
|
||||||
|
print_info "config check..."
|
||||||
|
# backup is important and should be checked
|
||||||
|
if [ -n "$backup_device_name" ]
|
||||||
|
then
|
||||||
|
device_mounted=0
|
||||||
|
if fdisk -l | grep -i "$backup_device_name.*linux"
|
||||||
|
then
|
||||||
|
print_info "ok - filesystem of external device is linux"
|
||||||
|
if [ -n "$backup_device_pass" ]
|
||||||
|
then
|
||||||
|
echo "$backup_device_pass" | cryptsetup luksOpen $backup_device_name cryptobackup
|
||||||
|
if [ ! -d /media/hubzilla_backup ]
|
||||||
|
then
|
||||||
|
mkdir /media/hubzilla_backup
|
||||||
|
fi
|
||||||
|
if mount /dev/mapper/cryptobackup /media/hubzilla_backup
|
||||||
|
then
|
||||||
|
device_mounted=1
|
||||||
|
print_info "ok - could encrypt and mount external backup device"
|
||||||
|
umount /media/hubzilla_backup
|
||||||
|
else
|
||||||
|
print_warn "backup to external device will fail because encryption failed"
|
||||||
|
fi
|
||||||
|
cryptsetup luksClose cryptobackup
|
||||||
|
else
|
||||||
|
if mount $backup_device_name /media/hubzilla_backup
|
||||||
|
then
|
||||||
|
device_mounted=1
|
||||||
|
print_info "ok - could mount external backup device"
|
||||||
|
umount /media/hubzilla_backup
|
||||||
|
else
|
||||||
|
print_warn "backup to external device will fail because mount failed"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
print_warn "backup to external device will fail because filesystem is either not linux or 'backup_device_name' is not correct in $configfile"
|
||||||
|
fi
|
||||||
|
if [ $device_mounted == 0 ]
|
||||||
|
then
|
||||||
|
die "backup device not ready"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function die {
|
function die {
|
||||||
echo "ERROR: $1" > /dev/null 1>&2
|
echo "ERROR: $1" > /dev/null 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
@ -619,85 +664,94 @@ function configure_cron_daily {
|
|||||||
# - update hubzilla core and addon
|
# - update hubzilla core and addon
|
||||||
# - update and upgrade linux
|
# - update and upgrade linux
|
||||||
# - reboot
|
# - reboot
|
||||||
cat > /var/www/$hubzilladaily <<END
|
echo "#!/bin/sh" > /var/www/$hubzilladaily
|
||||||
#!/bin/sh
|
echo "#" >> /var/www/$hubzilladaily
|
||||||
#
|
echo "echo \" \"" >> /var/www/$hubzilladaily
|
||||||
echo " "
|
echo "echo \"+++ \$(date) +++\"" >> /var/www/$hubzilladaily
|
||||||
echo "+++ \$(date) +++"
|
echo "echo \" \"" >> /var/www/$hubzilladaily
|
||||||
echo " "
|
echo "echo \"\$(date) - renew certificat if 30 days old...\"" >> /var/www/$hubzilladaily
|
||||||
# renew certificat if over 30 days old
|
echo "bash /var/www/letsencrypt/letsencrypt.sh --cron" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - renew certificat if 30 days old..."
|
echo "#" >> /var/www/$hubzilladaily
|
||||||
bash /var/www/letsencrypt/letsencrypt.sh --cron
|
echo "# stop hubzilla" >> /var/www/$hubzilladaily
|
||||||
#
|
echo "echo \"\$(date) - stoping apaache and mysql...\"" >> /var/www/$hubzilladaily
|
||||||
# stop hubzilla
|
echo "service apache2 stop" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - stoping apaache and mysql..."
|
echo "/etc/init.d/mysql stop # to avoid inconsistancies" >> /var/www/$hubzilladaily
|
||||||
service apache2 stop
|
echo "#" >> /var/www/$hubzilladaily
|
||||||
/etc/init.d/mysql stop # to avoid inconsistancies
|
echo "# backup" >> /var/www/$hubzilladaily
|
||||||
#
|
echo "echo \"\$(date) - try to mount external device for backup...\"" >> /var/www/$hubzilladaily
|
||||||
# backup
|
echo "backup_device_name=$backup_device_name" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - try to mount external device for backup..."
|
echo "backup_device_pass=$backup_device_pass" >> /var/www/$hubzilladaily
|
||||||
backup_device_name=$backup_device_name
|
echo "backup_mount_point=$backup_mount_point" >> /var/www/$hubzilladaily
|
||||||
backup_device_pass=$backup_device_pass
|
echo "device_mounted=0" >> /var/www/$hubzilladaily
|
||||||
backup_mount_point=$backup_mount_point
|
echo "if [ -n \"$backup_device_name\" ]" >> /var/www/$hubzilladaily
|
||||||
device_mounted=0
|
echo "then" >> /var/www/$hubzilladaily
|
||||||
if [ -n "$backup_device_name" ] && [ -n "$backup_device_pass" ]
|
echo " if blkid | grep $backup_device_name" >> /var/www/$hubzilladaily
|
||||||
|
echo " then" >> /var/www/$hubzilladaily
|
||||||
|
if [ -n "$backup_device_pass" ]
|
||||||
then
|
then
|
||||||
if blkid | grep $backup_device_name
|
echo " echo \"decrypting backup device...\"" >> /var/www/$hubzilladaily
|
||||||
then
|
echo " echo "\"$backup_device_pass\"" | cryptsetup luksOpen $backup_device_name cryptobackup" >> /var/www/$hubzilladaily
|
||||||
echo "decrypting backup device..."
|
|
||||||
echo "$backup_device_pass" | cryptsetup luksOpen $backup_device_name cryptobackup
|
|
||||||
if [ ! -d $backup_mount_point ]
|
|
||||||
then
|
|
||||||
mkdir $backup_mount_point
|
|
||||||
fi
|
fi
|
||||||
echo "mounting backup device..."
|
echo " if [ ! -d $backup_mount_point ]" >> /var/www/$hubzilladaily
|
||||||
if mount /dev/mapper/cryptobackup $backup_mount_point
|
echo " then" >> /var/www/$hubzilladaily
|
||||||
|
echo " mkdir $backup_mount_point" >> /var/www/$hubzilladaily
|
||||||
|
echo " fi" >> /var/www/$hubzilladaily
|
||||||
|
echo " echo \"mounting backup device...\"" >> /var/www/$hubzilladaily
|
||||||
|
if [ -n "$backup_device_pass" ]
|
||||||
then
|
then
|
||||||
device_mounted=1
|
echo " if mount /dev/mapper/cryptobackup $backup_mount_point" >> /var/www/$hubzilladaily
|
||||||
echo "device $backup_device_name is now mounted. Starting backup..."
|
|
||||||
rsnapshot -c $snapshotconfig_external_device daily
|
|
||||||
rsnapshot -c $snapshotconfig_external_device weekly
|
|
||||||
rsnapshot -c $snapshotconfig_external_device monthly
|
|
||||||
echo "\$(date) - disk sizes..."
|
|
||||||
df -h
|
|
||||||
echo "\$(date) - db size..."
|
|
||||||
du -h $backup_mount_point | grep mysql/hubzilla
|
|
||||||
echo "unmounting backup device..."
|
|
||||||
umount $backup_mount_point
|
|
||||||
else
|
else
|
||||||
echo "failed to mount device $backup_device_name"
|
echo " if mount $backup_device_name $backup_mount_point" >> /var/www/$hubzilladaily
|
||||||
fi
|
fi
|
||||||
echo "closing decrypted backup device..."
|
echo " then" >> /var/www/$hubzilladaily
|
||||||
cryptsetup luksClose cryptobackup
|
echo " device_mounted=1" >> /var/www/$hubzilladaily
|
||||||
fi
|
echo " echo \"device $backup_device_name is now mounted. Starting backup...\"" >> /var/www/$hubzilladaily
|
||||||
fi
|
echo " rsnapshot -c $snapshotconfig_external_device daily" >> /var/www/$hubzilladaily
|
||||||
if [ \$device_mounted == 0 ]
|
echo " rsnapshot -c $snapshotconfig_external_device weekly" >> /var/www/$hubzilladaily
|
||||||
|
echo " rsnapshot -c $snapshotconfig_external_device monthly" >> /var/www/$hubzilladaily
|
||||||
|
echo " echo \"\$(date) - disk sizes...\"" >> /var/www/$hubzilladaily
|
||||||
|
echo " df -h" >> /var/www/$hubzilladaily
|
||||||
|
echo " echo \"\$(date) - db size...\"" >> /var/www/$hubzilladaily
|
||||||
|
echo " du -h $backup_mount_point | grep mysql/hubzilla" >> /var/www/$hubzilladaily
|
||||||
|
echo " echo \"unmounting backup device...\"" >> /var/www/$hubzilladaily
|
||||||
|
echo " umount $backup_mount_point" >> /var/www/$hubzilladaily
|
||||||
|
echo " else" >> /var/www/$hubzilladaily
|
||||||
|
echo " echo \"failed to mount device $backup_device_name\"" >> /var/www/$hubzilladaily
|
||||||
|
echo " fi" >> /var/www/$hubzilladaily
|
||||||
|
if [ -n "$backup_device_pass" ]
|
||||||
then
|
then
|
||||||
echo "device could not be mounted $backup_device_name. Using internal disk for backup..."
|
echo " echo \"closing decrypted backup device...\"" >> /var/www/$hubzilladaily
|
||||||
rsnapshot -c $snapshotconfig daily
|
echo " cryptsetup luksClose cryptobackup" >> /var/www/$hubzilladaily
|
||||||
rsnapshot -c $snapshotconfig weekly
|
|
||||||
rsnapshot -c $snapshotconfig monthly
|
|
||||||
fi
|
fi
|
||||||
#
|
echo " fi" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - db size..."
|
echo "fi" >> /var/www/$hubzilladaily
|
||||||
du -h /var/cache/rsnapshot/ | grep mysql/hubzilla
|
echo "if [ \$device_mounted == 0 ]" >> /var/www/$hubzilladaily
|
||||||
#
|
echo "then" >> /var/www/$hubzilladaily
|
||||||
# update
|
echo " echo \"device could not be mounted $backup_device_name. Using internal disk for backup...\"" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - updating letsencrypt.sh..."
|
echo " rsnapshot -c $snapshotconfig daily" >> /var/www/$hubzilladaily
|
||||||
git -C /var/www/letsencrypt/ pull
|
echo " rsnapshot -c $snapshotconfig weekly" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - updating hubhilla core..."
|
echo " rsnapshot -c $snapshotconfig monthly" >> /var/www/$hubzilladaily
|
||||||
git -C /var/www/html/ pull
|
echo "fi" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - updating hubhilla addons..."
|
echo "#" >> /var/www/$hubzilladaily
|
||||||
git -C /var/www/html/addon/ pull
|
echo "echo \"\$(date) - db size...\"" >> /var/www/$hubzilladaily
|
||||||
chown -R www-data:www-data /var/www/html/ # make all accessable for the webserver
|
echo "du -h /var/cache/rsnapshot/ | grep mysql/hubzilla" >> /var/www/$hubzilladaily
|
||||||
chown root:www-data /var/www/html/.htaccess
|
echo "#" >> /var/www/$hubzilladaily
|
||||||
chmod 0644 /var/www/html/.htaccess # www-data can read but not write it
|
echo "# update" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - updating linux..."
|
echo "echo \"\$(date) - updating letsencrypt.sh...\"" >> /var/www/$hubzilladaily
|
||||||
apt-get -q -y update && apt-get -q -y dist-upgrade # update linux and upgrade
|
echo "git -C /var/www/letsencrypt/ pull" >> /var/www/$hubzilladaily
|
||||||
echo "\$(date) - Backup hubzilla and update linux finished. Rebooting..."
|
echo "echo \"\$(date) - updating hubhilla core...\"" >> /var/www/$hubzilladaily
|
||||||
#
|
echo "git -C /var/www/html/ pull" >> /var/www/$hubzilladaily
|
||||||
reboot
|
echo "echo \"\$(date) - updating hubhilla addons...\"" >> /var/www/$hubzilladaily
|
||||||
END
|
echo "git -C /var/www/html/addon/ pull" >> /var/www/$hubzilladaily
|
||||||
|
echo "chown -R www-data:www-data /var/www/html/ # make all accessable for the webserver" >> /var/www/$hubzilladaily
|
||||||
|
echo "chown root:www-data /var/www/html/.htaccess" >> /var/www/$hubzilladaily
|
||||||
|
echo "chmod 0644 /var/www/html/.htaccess # www-data can read but not write it" >> /var/www/$hubzilladaily
|
||||||
|
echo "echo \"\$(date) - updating linux...\"" >> /var/www/$hubzilladaily
|
||||||
|
echo "apt-get -q -y update && apt-get -q -y dist-upgrade # update linux and upgrade" >> /var/www/$hubzilladaily
|
||||||
|
echo "echo \"\$(date) - Backup hubzilla and update linux finished. Rebooting...\"" >> /var/www/$hubzilladaily
|
||||||
|
echo "#" >> /var/www/$hubzilladaily
|
||||||
|
echo "reboot" >> /var/www/$hubzilladaily
|
||||||
|
|
||||||
if [ -z "`grep 'hubzilla-daily.sh' /etc/crontab`" ]
|
if [ -z "`grep 'hubzilla-daily.sh' /etc/crontab`" ]
|
||||||
then
|
then
|
||||||
echo "30 05 * * * root /bin/bash /var/www/$hubzilladaily >> /var/www/html/hubzilla-daily.log 2>&1" >> /etc/crontab
|
echo "30 05 * * * root /bin/bash /var/www/$hubzilladaily >> /var/www/html/hubzilla-daily.log 2>&1" >> /etc/crontab
|
||||||
@ -761,6 +815,7 @@ sslconf=/etc/apache2/sites-available/default-ssl.conf
|
|||||||
|
|
||||||
#set -x # activate debugging from here
|
#set -x # activate debugging from here
|
||||||
|
|
||||||
|
check_config
|
||||||
update_upgrade
|
update_upgrade
|
||||||
install_apache
|
install_apache
|
||||||
install_php
|
install_php
|
||||||
|
Reference in New Issue
Block a user