Schplurtzeries
Le wiki de schplurtz
Dokuwiki

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

schplurtziel:menageatator [2017/05/07 16:28]
ztrulphcs
schplurtziel:menageatator [2019/11/18 17:19] (Version actuelle)
ztrulphcs [Menageatator]
Ligne 1: Ligne 1:
 ====== Menageatator ====== ====== Menageatator ======
  
-2017-02-17+2017-10-26
  
 <WRAP column 45%> <WRAP column 45%>
Ligne 15: Ligne 15:
  
 <WRAP column 45%> <WRAP column 45%>
-On pourrait croire que le problème est réglé depuis longtemps, mais, de temps en temps pour des raisons bizarres, je tombe toujours sur des ordinaeurs dont les noyaux ne sont jamais désinstallés par apt ou //unattended-upgrades//.+On pourrait croire que le problème est réglé depuis longtemps, mais, de temps en temps pour des raisons bizarres, je tombe toujours sur des ordinateurs dont les noyaux ne sont jamais désinstallés par apt ou //unattended-upgrades//.
  
 Le script ci dessous est très simple, mais aussi très efficace. il considère que tous les noyaux installés sont effaçables sauf : Le script ci dessous est très simple, mais aussi très efficace. il considère que tous les noyaux installés sont effaçables sauf :
Ligne 47: Ligne 47:
  
 <code bash menageatator> <code bash menageatator>
-#! /bin/sh+#! /bin/bash
 # encoding: utf-8 # encoding: utf-8
 # vim: se ts=2 sw=2 et: # vim: se ts=2 sw=2 et:
  
 # menageatator: Remove unneeded linux kernel from debuntu systems # menageatator: Remove unneeded linux kernel from debuntu systems
 +# http://schplurtz.free.fr/wiki/schplurtziel/menageatator
 #   #  
-                     Copyright Schplurtz Le Déboulonné, 2016+              Copyright Schplurtz Le Déboulonné, 2016, 2017, 2019
 #   #  
 #                  Schplurtz le Déboulonné <Schplurtz@laposte.net> #                  Schplurtz le Déboulonné <Schplurtz@laposte.net>
Ligne 117: Ligne 118:
 #  les termes.                         | #  les termes.                         |
  
-# Yeah I know. Could use ruby/perl/ocam/lua/go/python and less pipes. +# Yeah I know. Could use ruby/perl/ocam/lua/python/whatever and less pipes. 
-# Could use array, associative arrays etc... Just prefering simplicity+# Could use array, associative arrays etc... Just prefering simplicity,
 # clarity and possibility to run with dumb^Wsimple shells.  # clarity and possibility to run with dumb^Wsimple shells. 
  
Ligne 133: Ligne 134:
 IFS="$(printf ' \t') IFS="$(printf ' \t')
 " "
 +# /sbin and /usr/sbin are usually not in cron PATH. add them
 +# if they're not present as dpkg will need commands there.
 +case "$PATH" in
 +(*:/usr/sbin|/usr/sbin:*|*:/usr/sbin:*) : ;;
 +(*) PATH="${PATH}:/usr/sbin" ;;
 +esac
 +case "$PATH" in
 +(*:/sbin|/sbin:*|*:/sbin:*) : ;;
 +(*) PATH="${PATH}:/sbin" ;;
 +esac
 +
 set -e # Stop on any error. set -e # Stop on any error.
  
Ligne 172: Ligne 184:
 # out the kernels that dpkg has never touched : /^un / # out the kernels that dpkg has never touched : /^un /
      
-  dpkg-query -W -f '${Status} ${package}\n' "$@" |+  dpkg-query -W -f '${Status} ${package}\n' "$@" 2>/dev/null |
     sed -e 's/^deinstall/removed/     sed -e 's/^deinstall/removed/
             s/^\(.\)[^ ]* *\(.\)[^ ]* *\(.\)[^ ]* */\1\3\2 /             s/^\(.\)[^ ]* *\(.\)[^ ]* *\(.\)[^ ]* */\1\3\2 /
Ligne 185: Ligne 197:
   apt-get "$@"   apt-get "$@"
 } }
 +ARGV=( "$@" ) # keep command line args for final apt-get command...
  
         linux_vers_tpl='[0-9]*.[0-9]*.[0-9]*-[0-9]*'         linux_vers_tpl='[0-9]*.[0-9]*.[0-9]*-[0-9]*'
Ligne 190: Ligne 203:
 linux_images_extra_tpl="linux-image-extra-${linux_vers_tpl}" linux_images_extra_tpl="linux-image-extra-${linux_vers_tpl}"
      linux_headers_tpl="linux-headers-${linux_vers_tpl}"      linux_headers_tpl="linux-headers-${linux_vers_tpl}"
 +     linux_modules_tpl="linux-modules-${linux_vers_tpl}"
  
 # list of all linux-image packages dpkg is aware of # list of all linux-image packages dpkg is aware of
Ligne 263: Ligne 277:
     "$linux_images_tpl" \     "$linux_images_tpl" \
     "$linux_images_extra_tpl" \     "$linux_images_extra_tpl" \
-    "$linux_headers_tpl" |        # list linux images, images-extra, headers+    "$linux_headers_tpl" \ 
 +    "$linux_modules_tpl" |        # list linux images, images-extra, headers, modules
   reject '^h' |                   # filter out packages on hold   reject '^h' |                   # filter out packages on hold
   reject "$@" |                   # filter out those we keep   reject "$@" |                   # filter out those we keep
Ligne 270: Ligne 285:
  
 # If there are kernels to remove, remove them # If there are kernels to remove, remove them
-{ test $# -gt 0 && _apt_get purge "$@" ; } || :+{ test $# -gt 0 && _apt_get "${ARGV[@]}" purge "$@" ; } || :
  
 # Given this list of kernel, # Given this list of kernel,
Ligne 286: Ligne 301:
 </code> </code>
  
 +===== Utilisation / Usage =====
 +
 +<code>
 +sudo menageatator
 +</code>
 +<WRAP clear></WRAP>
 +
 +----- 
 +
 +<WRAP column 45%>
 +Si vous êtes brave et ne voulez pas confirmer les choix de menageatator
 +</WRAP>
 +<WRAP column 45%>
 +If you are brave and don't want to confirm menageatator choices
 +</WRAP>
 +<code>
 +sudo menageatator -y
 +</code>