Posted By

cirio on 05/17/09


Tagged


Versions (?)

clean ubuntu 9.04


 / Published in: Bash
 

URL: http://lineguides.netsons.org

  1. #!/bin/bash
  2. #Questo script effettua la manutenzione di un sistema operativo GNU/Linux Ubuntu 8.04 - 8.10 - 9.04
  3.  
  4. #------------------------------------------------------------------------------------------+
  5. # Funzione aggiornamento |
  6. #------------------------------------------------------------------------------------------+
  7. function aggiornamento {
  8. echo
  9. echo "********************** INIZIO AGGIORNAMENTO DEL SISTEMA **********************"
  10. echo
  11. echo -n "# Aggiorno gli indici dei pacchetti? "
  12. read sure
  13. if [[ $sure = "s" ]]
  14. then
  15. sudo apt-get update
  16. echo "* Aggiornamento indici pacchetti...[OK]"
  17. else
  18. echo "* Aggiornamento indici pacchetti...[NOT EXECUTED]"
  19. fi
  20. echo
  21. echo -n "# Aggiorno le chiavi GPG degli indici dei pacchetti? "
  22. read sure
  23. if [[ $sure = "s" ]]
  24. then
  25. touch err
  26. sudo apt-get update 2>err
  27. num=$(grep 'NO_PUBKEY' err | wc -l)
  28. str=$(grep 'NO_PUBKEY' err)
  29. tot=$num
  30. if [ $num != 0 ]
  31. then
  32. echo "---RISOLVO NO_PUBKEY---"
  33. for (( i=0 ; i<$num ; i++ ))
  34. do
  35. tmp=${str#*NO_PUBKEY }
  36. key=${tmp:0:16}
  37. str=${str#*NO_PUBKEY}
  38. echo "Aggiungo la chiave:$key"
  39. gpg --keyserver subkeys.pgp.net --recv $key
  40. gpg --export --armor $key | sudo apt-key add -
  41. done
  42. fi
  43. num=0
  44. num=$(grep 'BADSIG' err | wc -l)
  45. str=$(grep 'BADSIG' err)
  46. tot=$(( $tot + $num ))
  47. if [ $num != 0 ]
  48. then
  49. echo "---RISOLVO BADSIG---"
  50. for (( i=0 ; i<$num ; i++ ))
  51. do
  52. tmp=${str#*BADSIG }
  53. key=${tmp:0:16}
  54. str=${str#*BADSIG}
  55. echo "Aggiungo la chiave:$key"
  56. gpg --keyserver subkeys.pgp.net --recv $key
  57. gpg --export --armor $key | sudo apt-key add -
  58. done
  59. fi
  60. rm err
  61. else
  62. echo "* Aggiornamento chiavi GPG degli indici dei pacchetti...[NOT EXECUTED]"
  63. fi
  64. echo
  65. echo -n "# Aggiorno i pacchetti? "
  66. read sure
  67. if [[ $sure = "s" ]]
  68. then
  69. sudo apt-get upgrade
  70. echo "* Aggiornamento pacchetti...[OK]"
  71. else
  72. echo "* Aggiornamento pacchetti...[NOT EXECUTED]"
  73. fi
  74. echo
  75. echo -n "# Aggiorno la data e l'ora del sistema? "
  76. read sure
  77. if [[ $sure = "s" ]]
  78. then
  79. sudo ntpdate it.pool.ntp.org
  80. echo "* Aggiornamento data e ora...[OK]"
  81. else
  82. echo "* Aggiornamento data e ora...[NOT EXECUTED]"
  83. fi
  84. echo -n "# Aggiorno il kernel del sistema? "
  85. read sure
  86. if [[ $sure = "s" ]]
  87. then
  88. sudo apt-get dist-upgrade -f
  89. echo "* Aggiornamento kernel...[OK]"
  90. else
  91. echo "* Aggiornamento kernel...[NOT EXECUTED]"
  92. fi
  93. echo
  94. echo -n "# Aggiorno l'immagine initramfs del kernel? "
  95. read sure
  96. if [[ $sure = "s" ]]
  97. then
  98. sudo update-initramfs -u
  99. echo "* Aggiornamento immagine initramfs...[OK]"
  100. else
  101. echo "* Aggiornamento immagine initramfs...[NOT EXECUTED]"
  102. fi
  103. echo
  104. echo -n "# Verifico che non ci siano pacchetti difettosi? "
  105. read sure
  106. if [[ $sure = "s" ]]
  107. then
  108. sudo apt-get install -f
  109. echo "* Verifica pacchetti difettosi...[OK]"
  110. else
  111. echo "* Verifica pacchetti difettosi...[NOT EXECUTED]"
  112. fi
  113. echo
  114. echo "ATTENZIONE: COMANDO POTENZIALMENTE PERICOLOSO!!"
  115. echo -n "# Aggiorno le configurazioni di GRUB? "
  116. read sure
  117. if [[ $sure = "s" ]]
  118. then
  119. sudo cp /boot/grub/menu.lst /boot/grub/menu.bak
  120. sudo update-grub
  121. echo "* Backup /boot/grub/menu.lst...[OK]"
  122. echo "* Aggiornamento GRUB...[OK]"
  123. else
  124. echo "* Aggiornamento GRUB...[NOT EXECUTED]"
  125. fi
  126. echo
  127. echo "--------------------------- AGGIORNAMENTO TERMINATO --------------------------"
  128. echo
  129. }
  130.  
  131. #------------------------------------------------------------------------------------------+
  132. # Funzione pulizia |
  133. #------------------------------------------------------------------------------------------+
  134. function pulizia {
  135. echo
  136. echo "************************* INIZIO PULIZIA DEL SISTEMA *************************"
  137. echo
  138. echo -n "# Rimuovo le dipendenze inutili? "
  139. read sure
  140. if [[ $sure = "s" ]]
  141. then
  142. sudo apt-get --purge autoremove
  143. echo "* Rimozione dipendenze inutili...[OK]"
  144. else
  145. echo "* Rimozione dipendenze inutili...[NOT EXECUTED]"
  146. fi
  147. echo
  148. echo -n "# Rimuovo la cache dei pacchetti scaricati dai repository obsoleti? "
  149. read sure
  150. if [[ $sure = "s" ]]
  151. then
  152. sudo apt-get autoclean
  153. echo "* Rimozione cache pacchetti obsoleti...[OK]"
  154. else
  155. echo "* Rimozione cache pacchetti obsoleti...[NOT EXECUTED]"
  156. fi
  157. echo
  158. echo -n "# Rimuovo la cache dei pacchetti scaricati dai repository? "
  159. read sure
  160. if [[ $sure = "s" ]]
  161. then
  162. sudo apt-get clean
  163. echo "* Rimozione cache pacchetti scaricati...[OK]"
  164. else
  165. echo "* Rimozione cache pacchetti scaricati...[NOT EXECUTED]"
  166. fi
  167. echo
  168. echo -n "# Rimuovo tutti i pacchetti di sistema oramai diventati obsoleti? "
  169. read sure
  170. if [[ $sure = "s" ]]
  171. then
  172. sudo dpkg --purge `COLUMNS=300 dpkg -l "*" | egrep "^rc" | cut -d\ -f3`
  173. echo "* Rimozione pacchetti obsoleti...[OK]"
  174. else
  175. echo "* Rimozione pacchetti obsoleti...[NOT EXECUTED]"
  176. fi
  177. echo
  178. echo -n "# Elimino il contenuto di /temp? "
  179. read sure
  180. if [[ $sure = "s" ]]
  181. then
  182. sudo rm -rf /tmp/*
  183. echo "* Eliminazione contenuto /temp...[OK]"
  184. else
  185. echo "* Eliminazione contenuto /temp...[NOT EXECUTED]"
  186. fi
  187. echo
  188. echo -n "# Elimino il contenuto della directory /.thumbnails? "
  189. read sure
  190. if [[ $sure = "s" ]]
  191. then
  192. sudo rm -rfv ~/.thumbnails/*
  193. echo "* Eliminazione files da /.thumbnails ...[OK]"
  194. else
  195. echo "*Eliminazione files da /.thumbnails ...[NOT EXECUTED]"
  196. fi
  197. echo
  198. echo -n "# Effettuo una ricerca dei residui di files? "
  199. read sure
  200. if [[ $sure = "s" ]]
  201. then
  202. find $HOME -name "*~"
  203. find $HOME -name "Desktop.ini"
  204. find $HOME -name "Thumbs.db"
  205. echo -n "# Rimuovo questi residui di file? "
  206. read sure
  207. if [ $sure == "s" ]
  208. then
  209. find $HOME -name "*~" -print0|xargs -0 /bin/rm -f
  210. find $HOME -name "Desktop.ini" -print0|xargs -0 /bin/rm -f
  211. find $HOME -name "Thumbs.db" -print0|xargs -0 /bin/rm -f
  212. echo "* Eliminazione residui...[OK]"
  213. else echo "* Eliminazione residui...[NOT EXECUTED]"
  214. fi
  215. else echo "* Ricerca residui di files...[NOT EXECUTED]"
  216. fi
  217. echo
  218. echo -n "# Elimino il contenuto del Cestino? "
  219. read sure
  220. if [[ $sure = "s" ]]
  221. then
  222. sudo rm -rfv ~/.local/share/Trash/*
  223. echo "* Eliminazione files da /Trash ...[OK]"
  224. else
  225. echo "* Eliminazione files da /Trash ...[NOT EXECUTED]"
  226. fi
  227. echo
  228. echo -n "# Pulisco i documenti recenti? "
  229. read sure
  230. if [[ $sure = "s" ]]
  231. then
  232. sudo mv ~/.recently-used.xbel .recently-used.xbel.bak
  233. sudo mv ~/.recently-used .recently-used.bak
  234. touch ~/.recently-used.xbel
  235. echo "<?xml version="1.0" encoding="UTF-8"?>\n<xbel version="1.0"\nxmlns:bookmark="http://www.freedesktop.org/standards/desktop-bookmarks"\nxmlns:mime="http://www.freedesktop.org/standards/shared-mime-info"\n></xbel>\n
  236. " > ~/.recently-used.xbel
  237. echo "* Pulizia documenti recenti...[OK]"
  238. else
  239. echo "* Pulizia documenti recenti...[NOT EXECUTED]"
  240. fi
  241. echo
  242. echo
  243. echo "Per l'esecuzione di questo comando verrà installato il pacchetto deborphan"
  244. echo "ATTENZIONE: COMANDO POTENZIALMENTE PERICOLOSO!!"
  245. echo -n "# Rimuovo le librerie orfane? "
  246. read sure
  247. if [[ $sure = "s" ]]
  248. then
  249. sudo apt-get -y install deborphan
  250. sudo apt-get --purge remove `deborphan`
  251. echo "* Rimozione librerie orfane...[OK]"
  252. else
  253. echo "* Rimozione librerie orfane...[NOT EXECUTED]"
  254. fi
  255. echo
  256. echo "Per l'esecuzione di questo comando verrà installato il pacchetto deborphan"
  257. echo "ATTENZIONE: COMANDO POTENZIALMENTE PERICOLOSO!!"
  258. echo -n "# Rimuovo le librerie orfane di sviluppo? "
  259. read sure
  260. if [[ $sure = "s" ]]
  261. then
  262. sudo apt-get -y install deborphan
  263. sudo apt-get --purge remove `deborphan --libdev`
  264. echo "* Rimozione librerie orfane...[OK]"
  265. else
  266. echo "* Rimozione librerie orfane...[NOT EXECUTED]"
  267. fi
  268. echo
  269. echo "------------------------------ PULIZIA TERMINATA -----------------------------"
  270. echo
  271. }
  272.  
  273. #------------------------------------------------------------------------------------------+
  274. # Programma principale |
  275. #------------------------------------------------------------------------------------------+
  276. echo "+============================================================================+"
  277. echo "| MANUTENZIONE DI UBUNTU |"
  278. echo "| |"
  279. echo "| Questo script effettua una manutenzione guidata del sistema |"
  280. echo "| per rispondere affermativamente alle domande che verranno |"
  281. echo "| poste premete s e confermate premendo il tasto <invio> |"
  282. echo "| per saltare la domanda premete <invio> |"
  283. echo "| |"
  284. echo "+============================================================================+"
  285. echo
  286. echo -n "~~~ ESEGUIRE I COMANDI PER L'AGGIORNAMENTO DEL SISTEMA? "
  287. read sure
  288. if [[ $sure = "s" ]]
  289. then
  290. aggiornamento
  291. else
  292. echo "*** Aggiornamento del sistema...[NOT EXECUTED]"
  293. fi
  294. echo
  295. echo -n "~~~ ESEGUIRE I COMANDI PER LA PULIZIA DEL SISTEMA? "
  296. read sure
  297. if [[ $sure = "s" ]]
  298. then
  299. pulizia
  300. else
  301. echo "*** Pulizia del sistema...[NOT EXECUTED]"
  302. fi
  303. echo
  304. echo -n "~~~ E' CONSIGLIABILE RIAVVIARE IL SISTEMA. RIAVVIARE? "
  305. read sure
  306. if [[ $sure = "s" ]]
  307. then
  308. sudo reboot
  309. else
  310. echo "*** Riavvio del sistema...[NOT EXECUTED]"
  311. fi
  312. echo
  313. read -p "Premi <INVIO> per uscire"

Report this snippet  

You need to login to post a comment.