diff --git a/maintenance.sh b/maintenance.sh new file mode 100644 index 0000000..cbf42aa --- /dev/null +++ b/maintenance.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +if [ "$(id -u)" != "0" ]; then + IS_SUDOERS=$(groups | grep sudo) + if [ -n "$(command -v sudo)" ] && [ -n "$IS_SUDOERS" ]; then + NEED_SUDO="$(command -v sudo)" + else + NEED_SUDO="" + fi +fi + +MAINTENANCE_APT() { + + # Colors + # Colors + CSI='\033[' + CEND="${CSI}0m" + CGREEN="${CSI}1;32m" + + if [ "$(id -u)" = "0" ] || [ -n "$IS_SUDOERS" ]; then + export DEBIAN_FRONTEND=noninteractive + echo -e "${CGREEN}#############################################${CEND}" + echo -e ' APT UPDATE ' + echo -e "${CGREEN}#############################################${CEND}" + if ! { + $NEED_SUDO apt-get update --allow-releaseinfo-change + }; then + $NEED_SUDO apt-get update + fi + echo -e "${CGREEN}#############################################${CEND}" + echo -e ' APT FULL-UPGRADE ' + echo -e "${CGREEN}#############################################${CEND}" + $NEED_SUDO apt-get --option=Dpkg::options::=--force-confmiss --option=Dpkg::options::=--force-confold --option=Dpkg::options::=--force-unsafe-io -y dist-upgrade + echo -e "${CGREEN}#############################################${CEND}" + echo -e ' APT-GET AUTOREMOVE ' + echo -e "${CGREEN}#############################################${CEND}" + $NEED_SUDO apt-get -o Dpkg::Options::="--force-confmiss" -o Dpkg::Options::="--force-confold" -y --purge autoremove + echo -e "${CGREEN}#############################################${CEND}" + echo -e ' APT AUTOCLEAN ' + echo -e "${CGREEN}#############################################${CEND}" + $NEED_SUDO apt-get -o Dpkg::Options::="--force-confmiss" -o Dpkg::Options::="--force-confold" -y autoclean + $NEED_SUDO apt-get -y clean + ## clean packages in deinstall state + DEINSTALLED=$($NEED_SUDO dpkg --get-selections | grep deinstall | cut -f1) + if [ -n "$DEINSTALLED" ]; then + echo -e "${CGREEN}#############################################${CEND}" + echo -e ' CLEAN DEINSTALLED PACKAGES ' + echo -e "${CGREEN}#############################################${CEND}" + $NEED_SUDO dpkg --get-selections | grep deinstall | cut -f1 | xargs dpkg --purge + fi + OLD_LOGS=$($NEED_SUDO find /var/log/ -type f -mtime +30 -iname "*.gz") + if [ -n "$OLD_LOGS" ]; then + echo -e "${CGREEN}#############################################${CEND}" + echo -e ' CLEANUP OLD LOGS ' + echo -e "${CGREEN}#############################################${CEND}" + $NEED_SUDO find /var/log/ -type f -mtime +30 -iname "*.gz" -exec rm '{}' \; + fi + echo -e "${CGREEN}#############################################${CEND}" + echo -e ' EE-BASHRC UPDATE ' + echo -e "${CGREEN}#############################################${CEND}" + update_git_mybashrc + else + echo "you need to be root or sudoers to launch the maintenance" + fi + +} + +MAINTENANCE_APT