#!/bin/bash # info: update backup exclusion list # options: USER FILE # # The function for updating backup exclusion list #----------------------------------------------------------# # Variable&Function # #----------------------------------------------------------# # Argument definition user=$1 vfile=$2 # Includes source $VESTA/func/main.sh source $VESTA/conf/vesta.conf is_file_available() { if [ ! -e "$vfile" ]; then check_result $E_NOTEXIST "file $vfile doesn't exist" fi } is_file_valid() { exclude="[!|#|$|^|&|(|)|{|}|<|>|?|\|\"|;|%|\`]" if [[ "$(cat $vfile)" =~ $exclude ]]; then check_result $E_INVALID "invalid characters in the exlusion list" fi } #----------------------------------------------------------# # Verifications # #----------------------------------------------------------# check_args '2' "$#" 'USER FILE' is_format_valid 'user' 'vfile' is_object_valid 'user' 'USER' "$user" is_file_available is_file_valid #----------------------------------------------------------# # Action # #----------------------------------------------------------# # Flush variables WEB='' DNS='' MAIL='' DB='' CRON='' USER='' # Source exclusion list source $vfile # Updating exlusion list echo "WEB='$WEB'" > $USER_DATA/backup-excludes.conf echo "DNS='$DNS'" >> $USER_DATA/backup-excludes.conf echo "MAIL='$MAIL'" >> $USER_DATA/backup-excludes.conf echo "DB='$DB'" >> $USER_DATA/backup-excludes.conf echo "CRON='$CRON'" >> $USER_DATA/backup-excludes.conf echo "USER='$USER'" >> $USER_DATA/backup-excludes.conf chmod 660 $USER_DATA/backup-excludes.conf #----------------------------------------------------------# # Vesta # #----------------------------------------------------------# # Logging log_history "updated exlusion list" log_event "$OK" "$ARGUMENTS" exit