mirror of
https://github.com/lephisto/crossover.git
synced 2025-12-06 04:09:20 +01:00
Strip ansi color codes from syslog and mail
This commit is contained in:
30
crossover
30
crossover
@@ -79,6 +79,7 @@ declare -r redstconf='^\/etc\/pve\/nodes\/(.*)\/qemu-server\/([0-9]+).conf$'
|
|||||||
declare -r recephimg='([a-zA-Z0-9]+)\:(.*)'
|
declare -r recephimg='([a-zA-Z0-9]+)\:(.*)'
|
||||||
declare -r restripsnapshots='/^$/,$d'
|
declare -r restripsnapshots='/^$/,$d'
|
||||||
declare -r redateex='^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$'
|
declare -r redateex='^([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})$'
|
||||||
|
declare -r restripansicolor='s/\x1b\[[0-9;]*m//g'
|
||||||
|
|
||||||
function usage(){
|
function usage(){
|
||||||
shift
|
shift
|
||||||
@@ -121,6 +122,7 @@ Options:
|
|||||||
--influxtoken Influx API token with write permission
|
--influxtoken Influx API token with write permission
|
||||||
--influxbucket Influx Bucket to write to (e.g. --influxbucket=telegraf/autogen)
|
--influxbucket Influx Bucket to write to (e.g. --influxbucket=telegraf/autogen)
|
||||||
--jobname Descriptive name for the job, used in Statistics
|
--jobname Descriptive name for the job, used in Statistics
|
||||||
|
--mail Mail address to send report to, comma-seperated (e.g. --mail=admin@test.com,admin2@test.com)
|
||||||
Switches:
|
Switches:
|
||||||
--online Allow online Copy
|
--online Allow online Copy
|
||||||
--migrate Stop VM on Source Cluster before final Transfer and start on destination Cluster
|
--migrate Stop VM on Source Cluster before final Transfer and start on destination Cluster
|
||||||
@@ -142,7 +144,7 @@ function parse_opts(){
|
|||||||
local args
|
local args
|
||||||
args=$(getopt \
|
args=$(getopt \
|
||||||
--options '' \
|
--options '' \
|
||||||
--longoptions=vmid:,prefixid:,excludevmids:,destination:,pool:,keeplocal:,keepremote:,rewrite:,influxurl:,influxorg:,influxtoken:,influxbucket:,jobname:,mail:,online,migrate,nolock,keep-slock,keep-dlock,overwrite,dry-run,debug \
|
--longoptions=vmid:,prefixid:,excludevmids:,destination:,pool:,keeplocal:,keepremote:,rewrite:,influxurl:,influxorg:,influxtoken:,influxbucket:,jobname:,mail:,online,migrate,nolock,keep-slock,keep-dlock,overwrite,dry-run,debug,syslog \
|
||||||
--name "$PROGNAME" \
|
--name "$PROGNAME" \
|
||||||
-- "$@") \
|
-- "$@") \
|
||||||
|| end_process 128
|
|| end_process 128
|
||||||
@@ -173,6 +175,7 @@ function parse_opts(){
|
|||||||
--keep-slock) opt_keepslock=1; shift;;
|
--keep-slock) opt_keepslock=1; shift;;
|
||||||
--keep-dlock) opt_keepdlock=1; shift;;
|
--keep-dlock) opt_keepdlock=1; shift;;
|
||||||
--overwrite) opt_overwrite=1; shift;;
|
--overwrite) opt_overwrite=1; shift;;
|
||||||
|
--syslog) opt_syslog=1; shift;;
|
||||||
--) shift; break;;
|
--) shift; break;;
|
||||||
*) break;;
|
*) break;;
|
||||||
esac
|
esac
|
||||||
@@ -343,6 +346,7 @@ function log(){
|
|||||||
local level=$1
|
local level=$1
|
||||||
shift 1
|
shift 1
|
||||||
local message=$*
|
local message=$*
|
||||||
|
local syslog_msg=''
|
||||||
|
|
||||||
case $level in
|
case $level in
|
||||||
debug)
|
debug)
|
||||||
@@ -354,28 +358,32 @@ function log(){
|
|||||||
|
|
||||||
info)
|
info)
|
||||||
echo -e "$message";
|
echo -e "$message";
|
||||||
echo -e "$message" >> "$LOG_FILE";
|
echo -e "$message" | sed -e 's/\x1b\[[0-9;]*m//g' >> "$LOG_FILE";
|
||||||
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" "$message"
|
syslog_msg=$(echo -e "$message" | sed -e ${restripansicolor})
|
||||||
|
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" "$syslog_msg"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
warn)
|
warn)
|
||||||
echo -n "$(echoyellow 'WARNING: ')"
|
echo -n "$(echoyellow 'WARNING: ')"
|
||||||
echowhite "$message" 1>&2
|
echowhite "$message" 1>&2
|
||||||
echo -e "$message" >> "$LOG_FILE";
|
echo -e "$message" | sed -e ${restripansicolor} >> "$LOG_FILE";
|
||||||
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" -p daemon.warn "$message"
|
syslog_msg=$(echo -e "$message" | sed -e ${restripansicolor})
|
||||||
|
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" -p daemon.warn "$syslog_msg"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
error)
|
error)
|
||||||
echo -n "$(echored 'ERROR: ')"
|
echo -n "$(echored 'ERROR: ')"
|
||||||
echowhite "$message" 1>&2
|
echowhite "$message" 1>&2
|
||||||
echo -e "$message" >> "$LOG_FILE";
|
echo -e "$message" | sed -e ${restripansicolor} >> "$LOG_FILE";
|
||||||
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" -p daemon.err "$message"
|
syslog_msg=$(echo -e "$message" | sed -e ${restripansicolor})
|
||||||
|
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" -p daemon.err "$syslog_msg"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "$message" 1>&2
|
echo "$message" 1>&2
|
||||||
echo -e "$message" >> "$LOG_FILE";
|
echo -e "$message" | sed -e ${restripansicolor} >> "$LOG_FILE";
|
||||||
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" "$message"
|
syslog_msg=$(echo -e "$message" | sed -e ${restripansicolor})
|
||||||
|
[ $opt_syslog -eq 1 ] && logger -t "$PROGNAME" "$syslog_msg"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
@@ -797,18 +805,14 @@ function end_process(){
|
|||||||
ss_total=$(expr $perf_ss_ok + $perf_ss_failed)
|
ss_total=$(expr $perf_ss_ok + $perf_ss_failed)
|
||||||
subject="Crossover [VM:$perf_vm_ok/$vmcount SS:$perf_ss_ok/$ss_total]"
|
subject="Crossover [VM:$perf_vm_ok/$vmcount SS:$perf_ss_ok/$ss_total]"
|
||||||
[ $rc != 0 ] && subject="[ERROR] $subject" || subject="[OK] $subject"
|
[ $rc != 0 ] && subject="[ERROR] $subject" || subject="[OK] $subject"
|
||||||
echo "Subject: $subject"
|
|
||||||
|
|
||||||
#send email
|
|
||||||
local mail;
|
local mail;
|
||||||
# local mailhead="Backup $perf Images in $vmcount VMs (Bytes: $bytecount)"
|
|
||||||
for mail in $(echo "$opt_addr_mail" | tr "," "\n"); do
|
for mail in $(echo "$opt_addr_mail" | tr "," "\n"); do
|
||||||
do_run "cat '$LOG_FILE' | mail -s '$subject' '$mail'"
|
do_run "cat '$LOG_FILE' | mail -s '$subject' '$mail'"
|
||||||
done
|
done
|
||||||
|
|
||||||
#remove log
|
#remove log
|
||||||
rm "$LOG_FILE"
|
rm "$LOG_FILE"
|
||||||
|
|
||||||
exit "$rc";
|
exit "$rc";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user