Skip to content

Commit c0ef20d

Browse files
committed
fix #265
1 parent 6c63064 commit c0ef20d

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

check-updates.sh

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ RD="\e[1;91m"
2323
GN="\e[1;92m"
2424
CL="\e[0m"
2525

26+
SANITIZE_NUMBER() {
27+
echo "$1" | tr -cd '0-9'
28+
}
29+
2630
ARGUMENTS () {
2731
while [[ $# -gt 0 ]]; do
2832
local ARGUMENT="$1"
@@ -271,6 +275,7 @@ VM_CHECK_START () {
271275
SSH_VM_PORT=$(awk -F'"' '/^SSH_VM_PORT=/ {print $2}' "$LOCAL_FILES/VMs/$VM")
272276
SSH_VM_PORT="${SSH_VM_PORT:-22}"
273277
SSH_START_DELAY_TIME=$(awk -F'"' '/^SSH_START_DELAY_TIME=/ {print $2}' "$LOCAL_FILES/VMs/$VM")
278+
SSH_START_DELAY_TIME=$(SANITIZE_NUMBER "$SSH_START_DELAY_TIME")
274279
SSH_START_DELAY_TIME="${SSH_START_DELAY_TIME:-45}"
275280
fi
276281
if [[ "$STATUS" == "status: stopped" && "$STOPPED_VM" == true ]]; then
@@ -397,9 +402,13 @@ CHECK_VM_QEMU () {
397402
# fi
398403
if [[ ${OS,,} =~ ubuntu|mint|kali|debian|devuan ]]; then
399404
qm guest exec "$VM" -- bash -c "apt-get update" >/dev/null 2>&1
400-
SECURITY_APT_UPDATES=$(qm guest exec "$VM" -- bash -c "apt-get -s upgrade | grep -ci ^inst.*security | tr -d '\n'" | tail -n +4 | head -n -1 | cut -c 18- | rev | cut -c 2- | rev)
405+
SECURITY_APT_UPDATES=$(qm guest exec "$VM" -- bash -c "apt-get -s upgrade | grep -ci '^inst.*security'" | tail -n +4 | head -n -1 | cut -c 18- | rev | cut -c 2- | rev)
406+
SECURITY_APT_UPDATES=$(SANITIZE_NUMBER "$SECURITY_APT_UPDATES")
407+
SECURITY_APT_UPDATES=${SECURITY_APT_UPDATES:-0}
401408
if [[ "$SECURITY_APT_UPDATES" -gt 0 ]]; then SECURITY_UPDATES_AVALABLE=true; fi
402-
NORMAL_APT_UPDATES=$(qm guest exec "$VM" -- bash -c "apt-get -s upgrade | grep -ci ^inst. | tr -d '\n'" | tail -n +4 | head -n -1 | cut -c 18- | rev | cut -c 2- | rev)
409+
NORMAL_APT_UPDATES=$(qm guest exec "$VM" -- bash -c "apt-get -s upgrade | grep -ci '^inst.'" | tail -n +4 | head -n -1 | cut -c 18- | rev | cut -c 2- | rev)
410+
NORMAL_APT_UPDATES=$(SANITIZE_NUMBER "$NORMAL_APT_UPDATES")
411+
NORMAL_APT_UPDATES=${NORMAL_APT_UPDATES:-0}
403412
EXITCODE=$(qm guest exec "$VM" -- bash -c '[ -f /var/run/reboot-required.pkgs ]' 2>/dev/null | grep -o '"exitcode"[[:space:]]*:[[:space:]]*[0-9]*' | grep -o '[0-9]\+')
404413
EXITCODE=${EXITCODE:-1}
405414
if [[ "$EXITCODE" -eq 0 ]]; then
@@ -419,12 +428,16 @@ CHECK_VM_QEMU () {
419428
elif [[ "$OS" =~ Fedora ]]; then
420429
qm guest exec "$VM" -- bash -c "dnf -y update" >/dev/null 2>&1
421430
UPDATES=$(qm guest exec "$VM" -- bash -c "dnf check-update | grep -Ec ' updates$'" | tail -n +4 | head -n -1 | cut -c 18- | rev | cut -c 2- | rev)
431+
UPDATES=$(SANITIZE_NUMBER "$UPDATES")
432+
UPDATES=${UPDATES:-0}
422433
if [[ "$UPDATES" -gt 0 ]]; then
423434
echo -e "${GN}VM ${BL}$VM${CL} : ${GN}$NAME${CL}"
424435
echo -e "$UPDATES"
425436
fi
426437
elif [[ "$OS" =~ Arch ]]; then
427438
UPDATES=$(qm guest exec "$VM" -- bash -c "pacman -Qu | wc -l" | tail -n +4 | head -n -1 | cut -c 18- | rev | cut -c 2- | rev)
439+
UPDATES=$(SANITIZE_NUMBER "$UPDATES")
440+
UPDATES=${UPDATES:-0}
428441
if [[ "$UPDATES" -gt 0 ]]; then
429442
echo -e "${GN}VM ${BL}$VM${CL} : ${GN}$NAME${CL}"
430443
echo -e "$UPDATES"
@@ -433,6 +446,8 @@ CHECK_VM_QEMU () {
433446
return
434447
elif [[ "$OS" =~ CentOS ]]; then
435448
UPDATES=$(qm guest exec "$VM" -- bash -c "yum -q check-update | wc -l" | tail -n +4 | head -n -1 | cut -c 18- | rev | cut -c 2- | rev)
449+
UPDATES=$(SANITIZE_NUMBER "$UPDATES")
450+
UPDATES=${UPDATES:-0}
436451
if [[ "$UPDATES" -gt 0 ]]; then
437452
echo -e "${GN}VM ${BL}$VM${CL} : ${GN}$NAME${CL}"
438453
echo -e "$UPDATES"

0 commit comments

Comments
 (0)