mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-31 18:11:54 +08:00
重构更新
This commit is contained in:
112
uninstall-pikvm.sh
Normal file
112
uninstall-pikvm.sh
Normal file
@@ -0,0 +1,112 @@
|
||||
#!/bin/bash
|
||||
# Script written by @srepac as requested by @Mark Jim
|
||||
# This script perform uninstall of pikvm from raspbian. This performs the following:
|
||||
#
|
||||
# 1. Stop/disable kvmd services
|
||||
# 2. Remove the main kvmd package files based on what was installed (see /var/cache/kvmd/installed_ver.txt file)
|
||||
#
|
||||
# CAVEATS:
|
||||
# 1. Script does not remove /usr/bin/ttyd (webterm), /usr/bin/ustreamer, /usr/bin/ustreamer-dump
|
||||
# 2. Script does not remove /usr/bin/janus (webrtc) and all its dependent files also
|
||||
# 3. Script does not remove any directories; you may end up with empty directories
|
||||
###
|
||||
# CHANGELOG:
|
||||
# 1.0 20220218 created script
|
||||
# 1.1 20220220 confirm uninstall and add -f option to perform destructive commands
|
||||
# 1.2 20220225 restore original /etc/motd
|
||||
# 2.0 20220225 save custom configs for possible restores during re-install later
|
||||
VER=2.0
|
||||
|
||||
save-configs() { ### save config files inside /etc/kvmd in case user re-installs pikvm later
|
||||
if [[ $f_flag -eq 1 ]]; then
|
||||
printf "\n-> Saving config files\n"
|
||||
|
||||
# Save passwd files used by PiKVM
|
||||
cp /etc/kvmd/htpasswd /etc/kvmd/htpasswd.save
|
||||
cp /etc/kvmd/ipmipasswd /etc/kvmd/ipmipasswd.save
|
||||
cp /etc/kvmd/vncpasswd /etc/kvmd/vncpasswd.save
|
||||
|
||||
# Save webUI name and overrides
|
||||
cp /etc/kvmd/meta.yaml /etc/kvmd/meta.yaml.save
|
||||
cp /etc/kvmd/override.yaml /etc/kvmd/override.yaml.save
|
||||
cp /etc/kvmd/web.css /etc/kvmd/web.css.save
|
||||
|
||||
# Save Janus configs
|
||||
#cp /etc/kvmd/janus/janus.cfg /etc/kvmd/janus/janus.cfg.save
|
||||
|
||||
# Save sudoers.d/99_kvmd
|
||||
cp /etc/sudoers.d/99_kvmd /etc/sudoers.d/99_kvmd.save
|
||||
cp /etc/sudoers.d/custom_commands /etc/sudoers.d/custom_commands.save
|
||||
fi
|
||||
}
|
||||
|
||||
stop-disable-kvmd() {
|
||||
#for i in $( systemctl | grep kvmd | grep -v var | awk '{print $1}')
|
||||
|
||||
for i in $( systemctl | grep kvmd | grep -v var | awk '$1||$2 ~ /kvmd/ {print $2, $1}' | sed 's/loaded //g' | cut -d' ' -f1 )
|
||||
do
|
||||
echo "-> Stopping/disabling ${i} ..."
|
||||
if [[ $f_flag -eq 1 ]]; then systemctl disable --now $i; fi
|
||||
done
|
||||
} # end stop-disable-kvmd
|
||||
|
||||
# Determine what kvmd version was installed last
|
||||
remove-kvmd-package() {
|
||||
printf "\nProceeding to remove kvmd package files\n" | tee -a $LOGFILE
|
||||
#KVMDVER=$( egrep 'kvmd-[0-9]' $INSTLOG | awk '{print $4}' | cut -d'-' -f2 | tail -1 )
|
||||
KVMDVER=$( pikvm-info | grep kvmd-platform | awk '{print $1}' )
|
||||
KVMDPKG="kvmd-${KVMDVER}"
|
||||
|
||||
echo "Uninstalling ${KVMDPKG} from this system."
|
||||
for file in $( tar tvfJ /var/cache/kvmd/${KVMDPKG}* | awk '{print $NF}' | grep -v '/$' )
|
||||
do
|
||||
echo "-> Deleting /$file ..."
|
||||
if [[ $f_flag -eq 1 ]]; then rm /$file; fi
|
||||
done
|
||||
} # end remove-kvmd-package
|
||||
|
||||
restore-motd() {
|
||||
if [[ $f_flag -eq 1 ]]; then
|
||||
if [ -e /etc/motd.orig ]; then cp -f /etc/motd.orig /etc/motd; fi
|
||||
fi
|
||||
cat /etc/motd
|
||||
} # end restore-motd
|
||||
|
||||
are-you-sure() {
|
||||
invalidinput=1
|
||||
while [ $invalidinput -eq 1 ]; do
|
||||
read -p "Uninstall PiKVM from this system. Are you sure? [y/n] " SURE
|
||||
case $SURE in
|
||||
Y|y) invalidinput=0 ;;
|
||||
N|n) echo "Exiting."; exit 0 ;;
|
||||
*) echo "Invalid input. try again."; invalidinput=1 ;;
|
||||
esac
|
||||
done
|
||||
} # end are-you-sure fn
|
||||
|
||||
|
||||
|
||||
### MAIN STARTS HERE ###
|
||||
if [ -e /usr/local/bin/rw ]; then rw; fi
|
||||
mkdir -p /var/cache/kvmd # create directory in case it hasn't been created yet (e.g. installer hasn't been run)
|
||||
export INSTLOG="/var/cache/kvmd/installed_ver.txt"
|
||||
export LOGFILE="/var/cache/kvmd/uninstall.log"; rm -f $LOGFILE
|
||||
if [ ! -e $INSTLOG ]; then
|
||||
echo "Install log missing. Nothing to do." | tee -a $LOGFILE
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$1" == "-f" ]]; then
|
||||
printf "\n*** Actually perform destructive commands option set.\n\n"
|
||||
f_flag=1
|
||||
else
|
||||
printf "\n*** Only SHOWING what will be performed. Re-run with -f to actually perform destructive commands.\n\n"
|
||||
f_flag=0
|
||||
fi
|
||||
|
||||
are-you-sure
|
||||
save-configs | tee -a $LOGFILE
|
||||
stop-disable-kvmd | tee -a $LOGFILE
|
||||
restore-motd | tee -a $LOGFILE
|
||||
remove-kvmd-package | tee -a $LOGFILE
|
||||
if [ -e /usr/local/bin/ro ]; then ro; fi
|
||||
Reference in New Issue
Block a user