Visa obesvarade inlägg | Visa aktiva trådar Aktuellt datum och tid: 10 jul 2020, 09:43



Svara på tråd  [ 1 inlägg ] 
 När är det dags att boota om...?? 
Författare Meddelande
Användarvisningsbild

Blev medlem: 06 apr 2008, 00:09
Inlägg: 5548
Ort: Göteborg/Mölndal/Falkenberg
OS: Ubuntu
Svara med citat
Inlägg När är det dags att boota om...??
Det finns många åsikter om när det är dags att starta om datorn och enklast är det för de som stänger av den på kvällen för att sedan starta den på morgonen...

Jag är däremot till stor del "uppväxt" i server-världen och där handlar det om att en dator måste gå så länge som det bara är möjligt, innan man startar om den...

Jovisst, inom Linux är det ju många som gärna säger att "det bara är att låta den gå hur länge som helst, för Linux minneshantering (etc.) är så himla effektiv"...

Men nådå, eller nja, eller kanske, knappast eller näääeeee.....

Hemma kör man ju ofta en dator där man gärna uppgraderar för att åtminstone någotsånär ha moderna saker, men ute på företag (framförallt drifts- och produktions-maskiner), så står samma gamla saker och snurrar, år efter år. Just för att det är stabilt och riskerna är små....

Själv låter jag ofta burken gå i en månad eller två utan att starta om (ja ok, den "spinner ned" på natten), bara för att jag är så van vid att en dator ska inte stängas av i onödan....

Men om man då är osäker, eller om man själv ska kolla när man borde starta om, hur gör man då...??

Så jag "hackade ihop" ett lite enkelt script som man kan använda för att kontrollera det.

Jag har provat det i Ubuntu, Mint, Debian, OpenSUSE, SLED, SLES, RedHat, Fedora och CentOS och det funkar jättebra i alla förutom RedHat-gruppen där det lite omotiverat antyder att omstart måste göras, trots att det inte behövs. Dessutom ingår den här kontrollen numera i "dnf" (nya versionen av "yum"), men funkar alltså inte riktigt ändå (för mig). Jag ska kolla närmare på det....

Men i Debian-Ubuntu-Mint och Opensuse-SLED-SLES funkar det bra.... :)

Kom gärna med synpunkter!
Kod:
#! /bin/bash
#
function chkProc {
   RETURN=0
   NPROC=$(ps -ef | tail -n +2 | wc -l)
   NPROCT=$(ps -efT | tail -n +2 | wc -l)
   MAX_PROC=$(cat /proc/sys/kernel/pid_max)
   if [[ -z $1 || $1 == "INIT" ]]; then
      MAX_PROC=$(cat /proc/sys/kernel/pid_max)
      MAX_UPROC=$(ulimit -u)
   fi
   let Z_count=0
   PIDS=$(ls -d /proc/[0-9]* 2> /dev/null | awk -F/ '{ print $3 }' 2>> /dev/null)
   for PID in $PIDS; do
      PSTATE=$(grep State: /proc/$PID/status  2>> /dev/null| awk '{ print $2 }')
      if [[ ! -z $PSTATE ]]; then
         if [[ $PSTATE == "X" ]]; then
            let X_count+=1
            RETURN=1
         elif [[ $PSTATE == "Z" ]]; then
            let Z_count+=1
            RETURN=1
         fi
      fi
   done
   echo "Number of processes:            $NPROC"         
   echo "Number of processes+threads:    $NPROCT"         
   echo "Max process limit:              $MAX_PROC"
   if [[ $X_count -ne 0 ]]; then
      echo "-Dead processes:                $X_count"
   fi
   if [[ $Z_count -ne 0 ]]; then
      echo "-Zombie processes:              $Z_count"
   fi
   if [[ $X_count -ne 0 || $Z_count -ne 0 ]]; then
      echo "*** Consider REBOOT ***"
   fi
   return $RETURN
}
if [[ $UID != 0 ]]; then
   echo
   echo "-This script must be run as root..."
   echo
   exit
fi
clear
echo
echo "========================================"
echo '-Checking "/var/run/reboot-recuired"'
if [[ -r /var/run/reboot-required ]]; then
   cat /var/run/reboot-required
   if [[ -r /var/run/reboot-required.pkgs ]]; then
      echo "--Packages that need reboot:"
      cat /var/run/reboot-required.pkgs
   fi
fi
echo
echo "========================================"
echo "-Checking processes"
chkProc
echo
DIST=$(source /etc/os-release; echo $ID | awk -F \- '{ print $1 }')
if [[ $DIST == "ubuntu" || $DIST == "linuxmint" || $DIST == "debian" ]]; then
   echo "========================================"
   echo '-Running "needrestart"'
   if [[ ! -z $(which needrestart 2> /dev/null) ]]; then
      needrestart
   else
      echo 'needrestart is not installed - use "sudo apt install needrestart" to install it..."'
   fi
   echo
   echo "========================================"
   echo '-Running "checkrestart"'
   echo '-Note that most messages about "fuse" can be ignored...'
   if [[ ! -z $(which checkrestart 2> /dev/null) ]]; then
      checkrestart
   else
      echo 'debian-goodies is not installed - use "sudo apt install debian-goodies" to install it...'
   fi
   echo
elif [[ $DIST == "opensuse" || $DIST == "sles" || $DIST == "sled" || $DIST == "sle" ]]; then
   echo "========================================"
   if [[ -z $(which needs-restarting 2> /dev/null) ]]; then
      echo '-Running "zypper ps"'
      zypper ps
   else
      #echo 'yum-utils is not installed - use "sudo zypper install yum-utils" to install it...'
      echo '-Running "needs-restarting"'
      needs-restarting
   fi
   echo
elif [[ $DIST == "fedora" || $DIST == "centos" || $DIST == "redhat" || $DIST == "rhel" ]]; then
   echo "========================================"
   if [[ ! -z $(which needs-restarting 2> /dev/null) ]]; then
      echo '-Running "dnf needs-restarting -r"'
      dnf needs-restarting -r
      echo
   else
      echo '-Running "needs-restarting -r"'
      needs-restarting -r
      echo
   fi
else
   echo "========================================"
   echo "-$DIST is not supported yet, sorry!"
   echo
fi

_________________
Agera genom att ta och behålla initiativet, ta de risker detta kräver...
http://www.enargo.com/it/
OpenVMS Shark - i Linux finns inte SYS$CMKRNL...


Senast redigerad av Osprey 27 jun 2020, 22:31, redigerad totalt 1 gång.



26 jun 2020, 22:25
Profil WWW
Visa inlägg nyare än:  Sortera efter  
Svara på tråd   [ 1 inlägg ] 

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 21 gäster


Du kan inte skapa nya trådar i denna kategori
Du kan inte svara på trådar i denna kategori
Du kan inte redigera dina inlägg i denna kategori
Du kan inte ta bort dina inlägg i denna kategori
Du kan inte bifoga filer i denna kategori

Sök efter:
Hoppa till:  
Main Engineer for phpBB3: Bertie at phpBB.com © 2000 - 2002, 2005 - 2007, the Group behind the Open Source code of phpBB.
Designed by STSoftware, modified by Katt, Konservburk & Peetra. Swedish translation by Peetra & phpBB Sweden © 2006-2011