fix: velero date and long files
This commit is contained in:
parent
dcbfb10519
commit
186d5de974
89
backup.sh
89
backup.sh
@ -10,18 +10,43 @@ summarize_save_log() {
|
|||||||
|
|
||||||
[[ ! -f "$file" ]] && return
|
[[ ! -f "$file" ]] && return
|
||||||
|
|
||||||
local date=$(grep -oP '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}' "$file" | head -n1)
|
# On prend d'abord les 100 premières lignes puis les 1000 dernières
|
||||||
local source=$(grep ' => ' "$file" | cut -d' ' -f1 | tail -n1)
|
local snippet
|
||||||
local total_checks=$(grep -oP 'Checks:\s+\K[0-9]+' "$file" | tail -n1)
|
snippet=$( { head -n100 "$file"; tail -n1000 "$file"; } )
|
||||||
local total_transferred=$(grep -oP 'Transferred:\s+\K[0-9]+' "$file" | tail -n1)
|
|
||||||
local total_size=$(grep -oP 'Transferred:\s+\K[\d.]+\s+\w+ / [\d.]+\s+\w+' "$file" | tail -n1)
|
# On travaille sur ce snippet pour extraire date / source / etc.
|
||||||
local elapsed=$(grep -oP 'Elapsed time:\s+\K[0-9m\.s]+' "$file" | tail -n1)
|
local date source total_checks total_transferred total_size elapsed
|
||||||
|
|
||||||
|
date=$(printf "%s\n" "$snippet" \
|
||||||
|
| grep -oP '^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}' \
|
||||||
|
| head -n1)
|
||||||
|
|
||||||
|
source=$(printf "%s\n" "$snippet" \
|
||||||
|
| grep ' => ' \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| tail -n1)
|
||||||
|
|
||||||
|
total_checks=$(printf "%s\n" "$snippet" \
|
||||||
|
| grep -oP 'Checks:\s*\K[0-9]+' \
|
||||||
|
| tail -n1)
|
||||||
|
|
||||||
|
total_transferred=$(printf "%s\n" "$snippet" \
|
||||||
|
| grep -oP 'Transferred:\s*\K[0-9]+' \
|
||||||
|
| tail -n1)
|
||||||
|
|
||||||
|
total_size=$(printf "%s\n" "$snippet" \
|
||||||
|
| grep -oP 'Transferred:\s*\K[\d.]+\s+\w+\s*/\s*[\d.]+\s+\w+' \
|
||||||
|
| tail -n1)
|
||||||
|
|
||||||
|
elapsed=$(printf "%s\n" "$snippet" \
|
||||||
|
| grep -oP 'Elapsed time:\s*\K[0-9m\.s]+' \
|
||||||
|
| tail -n1)
|
||||||
|
|
||||||
STR+="${emoji} **${label}**\n"
|
STR+="${emoji} **${label}**\n"
|
||||||
[[ -n "$date" ]] && STR+=" Date : ${date}\n"
|
[[ -n "$date" ]] && STR+=" Date : ${date}\n"
|
||||||
[[ -n "$source" ]] && STR+=" Source : ${source}\n"
|
[[ -n "$source" ]] && STR+=" Source : ${source}\n"
|
||||||
[[ -n "$total_checks" ]] && STR+=" Checks : ${total_checks}\n"
|
[[ -n "$total_checks" ]] && STR+=" Checks : ${total_checks}\n"
|
||||||
[[ -n "$total_transferred" ]] && STR+=" Files : ${total_transferred}\n"
|
[[ -n "$total_transferred" ]]&& STR+=" Files : ${total_transferred}\n"
|
||||||
[[ -n "$total_size" ]] && STR+=" Size : ${total_size}\n"
|
[[ -n "$total_size" ]] && STR+=" Size : ${total_size}\n"
|
||||||
[[ -n "$elapsed" ]] && STR+=" Time : ${elapsed}\n"
|
[[ -n "$elapsed" ]] && STR+=" Time : ${elapsed}\n"
|
||||||
STR+="\n"
|
STR+="\n"
|
||||||
@ -71,34 +96,50 @@ summarize_backup_log() {
|
|||||||
STR+="\n"
|
STR+="\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Fonction pour résumer l’état d’un backup Velero
|
||||||
summarize_velero() {
|
summarize_velero() {
|
||||||
local label="$1" emoji="$2" file="$3"
|
local label="$1"
|
||||||
[[ ! -f "$file" ]] && return
|
local emoji="$2"
|
||||||
|
local backup_name="$3"
|
||||||
|
|
||||||
|
# On récupère la description du backup
|
||||||
|
local desc
|
||||||
|
if ! desc=$(cat /var/log/velero.log 2>/dev/null); then
|
||||||
|
STR+="🚨 **${label}** - impossible d’interroger velero\n\n"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# On extrait la ligne « Completed: YYYY-MM-DD HH:MM:SS ... »
|
||||||
|
local completed_raw completed
|
||||||
|
completed_raw=$(printf "%s\n" "$desc" | grep '^Completed:' | head -n1 | sed 's/^Completed:[[:space:]]*//')
|
||||||
|
# On tronque pour ne garder date+heure sans fuseau
|
||||||
|
completed=$(printf "%s\n" "$completed_raw" | awk '{printf "%s %s", $1, $2}')
|
||||||
|
|
||||||
|
# On peut aussi extraire Totals et Phase si besoin…
|
||||||
|
local total_items items_backed
|
||||||
|
total_items=$(printf "%s\n" "$desc" | grep 'Total items to be backed up' | awk '{print $NF}')
|
||||||
|
items_backed=$(printf "%s\n" "$desc" | grep '^Items backed up' | awk '{print $NF}')
|
||||||
|
|
||||||
STR+="${emoji} **${label}**\n"
|
STR+="${emoji} **${label}**\n"
|
||||||
# grab totals and phase
|
[[ -n "$completed" ]] && STR+=" Completed : ${completed}\n"
|
||||||
local total backed phase
|
[[ -n "$total_items" ]] && STR+=" Total : ${total_items}\n"
|
||||||
total=$(grep 'Total items to be backed up' "$file" | awk '{print $NF}')
|
[[ -n "$items_backed" ]]&& STR+=" Backed : ${items_backed}\n"
|
||||||
backed=$(grep '^Items backed up' "$file" | awk '{print $NF}')
|
STR+="\n"
|
||||||
phase=$(grep '^Phase:' "$file" | awk '{print $2}')
|
|
||||||
[[ -n "$total" ]] && STR+=" Total : ${total}\n"
|
|
||||||
[[ -n "$backed" ]] && STR+=" Backed: ${backed}\n"
|
|
||||||
[[ -n "$phase" ]] && STR+=" Phase : ${phase}\n\n"
|
|
||||||
}
|
}
|
||||||
|
export KUBECONFIG="/var/snap/microk8s/current/credentials/client.config"
|
||||||
summarize_save_log "Copy 1" "💾" "/var/log/save.log"
|
summarize_save_log "Copy 1" "💾" "/var/log/save.log"
|
||||||
summarize_save_log "Copy 2" "💾" "/var/log/save2.log"
|
summarize_save_log "Copy 2" "💾" "/var/log/save2.log"
|
||||||
summarize_save_log "Copy 3" "💾" "/var/log/save3.log"
|
summarize_save_log "Copy 3" "💾" "/var/log/save3.log"
|
||||||
summarize_backup_log "Back 1" "📼" "/var/log/backup.log"
|
summarize_backup_log "Back 1" "📼" "/var/log/backup.log"
|
||||||
summarize_backup_log "Back 2" "📼" "/var/log/backup2.log"
|
summarize_backup_log "Back 2" "📼" "/var/log/backup2.log"
|
||||||
summarize_backup_log "Back 3" "📼" "/var/log/backup3.log"
|
summarize_backup_log "Back 3" "📼" "/var/log/backup3.log"
|
||||||
/home/user/scripts/admin.sh velero info backup-complet-cluster2-$(cat /var/log/lastfilename) > /var/log/velero.log
|
/home/user/scripts/admin.sh velero info backup-complet-cluster2-$(cat /var/log/lastfilename) > /var/log/velero.log 2>&1
|
||||||
summarize_velero "Velero" "📦" "/var/log/velero.log"
|
summarize_velero "Velero" "📦" "/var/log/velero.log"
|
||||||
|
|
||||||
# Nettoyage des caractères ANSI éventuels
|
# Nettoyage des caractères ANSI éventuels
|
||||||
STR=$(echo -e "$STR" | sed -r 's/\x1B\[[0-9;]*[a-zA-Z]//g')
|
STR=$(echo -e "$STR" | sed -r 's/\x1B\[[0-9;]*[a-zA-Z]//g')
|
||||||
#echo -en "$STR"
|
echo -en "$STR"
|
||||||
|
|
||||||
# Envoi de la requête POST avec la chaîne formatée
|
# Envoi de la requête POST avec la chaîne formatée
|
||||||
curl -X POST https://n8n.kube.ia86.cc/webhook/6f4afe18-8d4c-485a-90d0-b0e4f6243d77 \
|
#curl -X POST https://n8n.kube.ia86.cc/webhook/6f4afe18-8d4c-485a-90d0-b0e4f6243d77 \
|
||||||
--data-urlencode "save=${STR}"
|
# --data-urlencode "save=${STR}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user