- #!/bin/bash
- export PATH=/sbin:/usr/sbin:/bin:/usr/bin
- printf '#\n'
- printf '# Quantron backup script STARTING...\n'
- systemctl stop codesys3-rt.service
- export TERM=linux
- exec 0<>/dev/tty0 1>&0 2>&0
- clear
- printf '#\n'
- printf '# Welcome to the QUANTRON backup\n'
- printf '#\n'
- is_usbstick_mounted()
- {
- grep -q -E \
- '[[:space:]]+/media/usb0[[:space:]]+(fat|vfat|ntfs|ext4)[[:space:]]+(rw|ro),' \
- '/proc/self/mounts'
- return $?
- }
- do_menu()
- {
- printf ' * Menu:\n'
- printf ' - Press <ESC> key for abort\n' # key="A"
- printf ' - Press <T> key for backup\n' # key="C"
- printf ' - Press <L%%/R%%> key for restore\n' # key="D"
- key=""
- for ((;;)) ; do
- printf '0\n' >'/sys/devices/platform/imx21-fb.0/graphics/fb0/blank'
- IFS="" read -e -r -u0 -N1 key
- case "$key" in
- A)
- printf '# Aborting...\n'
- exit 0
- ;;
- C)
- printf '# Starting backup...'
- do_backup
- exit 0
- ;;
- D)
- printf '# Starting restore...'
- do_restore
- exit 0
- ;;
- esac
- done
- }
- do_backup()
- {
- if ! is_usbstick_mounted ; then
- printf '# ERROR: No USB stick mounted, aborting\n'
- exit 1
- fi
- if ! /sbin/eag_usbstick mount_writeable ; then
- printf '# ERROR: Cannot mount stick writeable, aborting\n'
- fi
- mkdir -p /media/usb0/quantron_backup
- set -o pipefail
- (( backuperr=0 ))
- (cd / ; tar -cvf - var/dyn/) | \
- bzip2 -9 | \
- tee \
- >(md5sum /dev/stdin | sed 's/\/dev\/stdin/quantron_var_dyn_backup.tar.bz2/' >/media/usb0/quantron_backup/quantron_var_dyn_backup.tar.bz2.md5sum) \
- >/media/usb0/quantron_backup/quantron_var_dyn_backup.tar.bz2
- (( backuperr+=$? ))
- sync ; sync # UNIX tradition!
- /sbin/eag_usbstick mount_readonly
- (( backuperr+=$? ))
- if (( backuperr == 0 )) ; then
- printf '#\n# Backup success.\n#\n'
- else
- printf '#\n# Backup FAILED!!\n#\n'
- fi
- exit 0
- }
- do_restore()
- {
- true
- }
- do_menu
- # EOF.
Quantron backup script, 2nd generation
Posted by Anonymous on Fri 10th Jan 2020 10:03
raw | new post
view followups (newest first): Quantron backup script, 3rd generation by Anonymous
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.