Skip to content

Instantly share code, notes, and snippets.

@Bonveio
Last active February 11, 2024 05:12
Show Gist options
  • Save Bonveio/bb40b778b33ef06868c14c0240f25967 to your computer and use it in GitHub Desktop.
Save Bonveio/bb40b778b33ef06868c14c0240f25967 to your computer and use it in GitHub Desktop.
Cybree upgrade script (10 >> 11 >> 12 >> 13)

download script:

wget -O upgrade.sh 'https://gist.github.com/Bonveio/bb40b778b33ef06868c14c0240f25967/raw/upgrade.sh'

usage:

  • Debian 10 to 11 bash upgrade.sh 11
  • Debian 11 to 12 bash upgrade.sh 12
  • Debian 12 to 13 bash upgrade.sh 13
#!/bin/bash
# shellcheck disable=SC1091,SC2086
## Intended only for Cybree cloud instance usage
## to use "bash upgrade.sh 11"
## another example: "./upgrade.sh 11"
APT_CONF='/etc/apt/sources.list'
## init first occurence
[[ ! -f /root/.IS_FIRST_RUN ]] && echo 1 > /root/.IS_FIRST_RUN;
RepoList(){
[[ ! -f ${APT_CONF}.bckup ]] && mv ${APT_CONF} ${APT_CONF}.bckup;
local o="${1}"
case ${o} in
10|buster)
cat <<'EOF'> ${APT_CONF}
deb http://deb.debian.org/debian buster main
deb-src http://deb.debian.org/debian buster main
deb http://security.debian.org/debian-security buster-security main
deb-src http://security.debian.org/debian-security buster-security main
deb http://deb.debian.org/debian buster-updates main
deb-src http://deb.debian.org/debian buster-updates main
deb http://deb.debian.org/debian buster-backports main
deb-src http://deb.debian.org/debian buster-backports main
EOF
;;
11|bullseye)
cat <<'EOF'> ${APT_CONF}
deb http://deb.debian.org/debian bullseye main contrib
deb-src http://deb.debian.org/debian bullseye main contrib
deb http://deb.debian.org/debian-security/ bullseye-security main contrib
deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib
deb http://deb.debian.org/debian bullseye-updates main contrib
deb-src http://deb.debian.org/debian bullseye-updates main contrib
deb http://deb.debian.org/debian bullseye-backports main contrib
deb-src http://deb.debian.org/debian bullseye-backports main contrib
EOF
;;
12|bookworm)
cat <<'EOF'> ${APT_CONF}
deb http://deb.debian.org/debian bookworm main contrib
deb-src http://deb.debian.org/debian bookworm main contrib
deb http://deb.debian.org/debian-security/ bookworm-security main contrib
deb-src http://deb.debian.org/debian-security/ bookworm-security main contrib
deb http://deb.debian.org/debian bookworm-updates main contrib
deb-src http://deb.debian.org/debian bookworm-updates main contrib
deb http://deb.debian.org/debian bookworm-backports main contrib
deb-src http://deb.debian.org/debian bookworm-backports main contrib
EOF
;;
13|trixie)
cat <<'EOF'> ${APT_CONF}
deb http://deb.debian.org/debian trixie main contrib
deb-src http://deb.debian.org/debian trixie main contrib
deb http://deb.debian.org/debian-security/ trixie-security main contrib
deb-src http://deb.debian.org/debian-security/ trixie-security main contrib
deb http://deb.debian.org/debian trixie-updates main contrib
deb-src http://deb.debian.org/debian trixie-updates main contrib
deb http://deb.debian.org/debian trixie-backports main contrib
deb-src http://deb.debian.org/debian trixie-backports main contrib
EOF
;;
*)
echo 'Invalid Debian version'
echo 'Choose from 10~13'
exit 1
;;
esac
}
StartUpgrade(){
## Backup sshd_config first
[[ ! -f /etc/ssh/sshd_config.bckup ]] && cp -f /etc/ssh/sshd_config /etc/ssh/sshd_config.bckup;
unset VERSION_ID;source /etc/os-release;
local OLD_VER="$VERSION_ID";local A="$OLD_VER"
export DEBIAN_FRONTEND=noninteractive
export aptopt='-o DPKg::Options::=--force-confnew -o DPkg::Options::=--force-overwrite --allow-unauthenticated -o Acquire::ForceIPv4=true'
if [[ "$(cat /root/.IS_FIRST_RUN)" -eq 0 ]]; then
apt autoremove -yf ${aptopt}
apt autoclean
apt clean
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
fi
rm -rf /var/lib/dpkg/lock /var/{lib/apt/lists/lock,cache/apt/archives/lock}
apt update ${aptopt}
dpkg --configure -a
apt upgrade -yf ${aptopt}
apt --fix-broken install -yf ${aptopt}
rm -rf /var/lib/apt/lists/*
RepoList "${1}"
apt update ${aptopt}
apt upgrade -yf ${aptopt}
apt full-upgrade -yf ${aptopt}
if [[ "$(cat /root/.IS_FIRST_RUN)" -eq 1 ]]; then
echo 0 > /root/.IS_FIRST_RUN;
else
[[ "$VERSION_ID" == "12" ]] && rm -f /root/.IS_FIRST_RUN;
apt autoremove -yf ${aptopt}
fi
cp -f /etc/ssh/sshd_config.bckup /etc/ssh/sshd_config;systemctl -q restart ssh sshd;
unset VERSION_ID;source /etc/os-release;
local NEW_VER="$VERSION_ID";local B="$NEW_VER"
local P0="Upgraded from Debian ${A} to Debian ${B}"
if [[ "${A}" == "${B}" ]]; then
echo "Upgrade failed, version still Debian $B";exit 1;
else
echo "${P0} success"
fi
}
StartUpgrade ${1}
echo "Try to reboot your instance now to take effect"
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment