Tilbage

Menustyret oprydning, opdatering og backup

Som en videreudvikling af tidligere scripts har jeg konstrueret en menustyret udgave, hvor man blot skal indtaste nr. på den opgave som man vil have udført.

For at scriptet kan udføre de ønskede opgaver skal programmet rsync være installeret:

sudo aptitude install rsync

Herunder er der et screenshot som viser hvordan menuen ser ud i Tilda-terminalen

Scriptet er selvforklarende. Det kan blot kopieres med de rettelser som er angivet i kommentaren.

Min eksterne harddisk hedder 'disk' og min usb-nøgle hedder 'DISK_IMG', og jeg gemmer mine billeder i mappen Billeder.

Du skal rette disse navne til navnene på din egen disk og usb-nøgle samt navnet på den mappe hvor du gemmer dine billeder.

Det gør du i scriptets linje 8,9 og 10 hvor ordene er markeret med rødt

Navnet på din eksterne harddisk og din usb-nøgle finder du let: tilslut dem og brug flg. kommando:

ls /media

Efter rettelserne skal scriptet placeres i /usr/local/bin/ og gøres udførbart. Har du det liggende på dit Skrivebord, så bruger du terminalen sådan - en linje ad gangen:

cd Skrivebord
sudo mv vedligehold_menu.sh /usr/local/bin/
cd /usr/local/bin
sudo chmod +x vedligehold_menu.sh

Du kan så kalde scriptet fra en terminal med kommandoen

sudo vedligehold_menu.sh

Du kan også tilføje det til en launcher, så det kun kræver et klik at kalde scriptet:

  • Højreklik på panelet > Tilføj til panel > Brugerdefineret programgenvej
  • Vælg Program i terminal og skriv Navn: Administration | Kommando: sudo /usr/local/bin/vedligehold_menu.sh | Vælg evt. et andet ikon end det med fjederen ved at klikke på ikonet og vælge blandt de mulige

    Luk, og så er genvejen tilføjet til panelet og du er klar til at bruge scriptet

Du kan downloade nyeste version af scriptet her

Bemærk: det downloadede script er ikke fuldstændig identisk med nedenstående - i version 4 er nu indbygget kontrol af om harddisk eller usb-nøgle er tilsluttet og af, om det et tilstrækkelig diskplads på dem til en fuld backup. Desuden er tilføjet popups som viser hvad scriptet foretager sig.

Nedenstående bliver rettet ved først givne lejlighed.

Scriptet: vedligehold_menu.sh

#!/bin/bash

# # Menustyret udførelse af oprydning, opdatering og backup. flemming christensen (laoshi) version 3 - nu med indbygget kontrol af, om harddisk eller usb-nøgle er tilsluttet samt afmontering af harddisk og usb-nøgle gennem menuen - 9. juni 2009

#Scriptet gemmes som /usr/local/bin/vedligehold_menu.sh og skal gøres udførbart (sudo chmod +x /usr/local/bin/vedligehold_menu.sh) og kan så kaldes fra terminalen eller en launcher med 'sudo vedligehold_menu.sh'. Ved indtastning af menu-nr. udføres den pågældende opgave.

#Herunder skal du tilpasse scriptet så du erstatter 'disk' med navnet på din egen eksterne harddisk, 'DISK_IMG' med navnet på din egen usb-nøgle, og 'Billeder' med navnet på den mappe hvor du gemmer dine billeder.

exthd=disk
usbd=DISK_IMG
pict_dir=Billeder

#Herunder er redigering unødvendig

#Opdatering af systemets programpakker
function opdatere {
clear
dpkg --configure -a
aptitude safe-upgrade -y
}

#Der dannes en liste over alle installerede programpakker. Den gemmes i filen pakkeliste som ligger i home-mappen. Listen overskrives med de aktueller oplysninger hver gang denne funktion køres

function pakkelistehome {
clear
dpkg --get-selections | grep '[[:space:]]install$' | \awk '{print $1}' > $HOME/pakkeliste
}

#Der udføres oprydning af gemte programpakker, brudte programpakker fjernes og konfigurationsfiler for fjernede programpakker fjernes. Desuden ryddes der op i evolutions database, uaktuelle logfiler fjernes, og skraldespanden tømmes

function ryddeop {
clear
aptitude clean -y
aptitude autoclean -y
aptitude purge ~b
aptitude purge ~c
find ~/.thumbnails -type f -exec rm {} \;
rm -rf ~/.evolution/mail/local/folders.db
rm -rf $HOME/.local/share/Trash/*
rm -rf /var/log/*.gz
}

#Der foretages backup til ekstern harddisk af /etc/ og ændrede/slettede filer gemmes i mappen etc-ugedagsnavn. Efter en uge overskrives de gemte filer i denne mappe.

function fuldbackup {
clear
echo "Backup af etc til ekstern disk"
echo ""
rsync -vrtplz --progress --stats --delete --backup --backup-dir=/media/$exthd/etc-`date +%A` /etc/ /media/$exthd/etc

#Der foretages backup af /usr/local til ekstern harddisk og ændrede/slettede filer gemmes i mappen usr_local-ugedagsnavn. Efter en uge overskrives filerne i denne mappe.

echo ""
echo "Backup af usr/local til ekstern disk"
echo ""
rsync -vrtplz --progress --stats --delete --backup --backup-dir=/media/$exthd/usr_local-`date +%A` /usr/local/ /media/$exthd/usr_local
echo ""

#Der foretages backup af home-mappen med samtlige (også skjulte) filer til ekstern harddisk i mappen 'ditnavn'. Ændrede/slettede filer gemmes i mappen ændret-ugedagsnavn. Efter en uge overskrives filerne i denne mappe.

echo "Backup af home til ekstern disk"
echo ""
rsync -vrtplz --progress --stats --delete --backup --backup-dir=/media/$exthd/ændret-`date +%A` $HOME /media/$exthd/
echo ""
echo "Backup er afsluttet"
}

#Der foretages overførsel af Dokumenter-mappen til en usb-nøgle.

function docsbackup {
clear
rsync -vrtplz --progress --stats --delete $HOME/Dokumenter /media/$usbd/
}

#Der foretages overførsel af Billeder-mappen til en usb-nøgle.

function billedbackup {
clear
rsync -vrtplz --progress --stats --delete $HOME/$pict_dir/media/$usbd/
}

#Der dannes en liste over samtlige installerede programpakker, og denne overføres til en usb-nøgle. Næste gang denne overførsel foretages overskrives filen med de nye data.

function pakkelistebackup {
clear
dpkg --get-selections | grep '[[:space:]]install$' | \awk '{print $1}' > /media/$usbd/pakkeliste
}
#Afmontering af ekstern harddisk
function afmonter_hd {
if [ ! -e /media/$exthd ]; then
echo -e "\n\tEkstern harddisk er ikke tilsluttet"
echo -en "\n\tTryk på en vilkårlig tast for at fortsætte "
else
clear; umount /media/$exthd; echo -en "\n\t\tHarddisken kan nu fjernes - \n\tTryk på en vilkårlig tast for at fortsætte "
fi
}
#Afmontering af usb-nøgle
function afmonter_usb {
if [ ! -e /media/$usbd ]; then
clear
echo -e "\n\t\tusb-nøgle er ikke tilsluttet"
echo -en "\n\tTryk på en vilkårlig tast for at fortsætte "
else
clear
umount /media/$usbd
echo -en "\n\t\tusb-nøglen kan nu fjernes - \n\tTryk på en vilkårlig tast for at fortsætte " fi
}

#Selve menu-funktionen (strukturen).

function menu {
clear
echo
echo -e "\tOprydning, opdatering og backup\n"
echo -e "\t1. Rydde op"
echo -e "\t2. Gemme pakkeliste"
echo -e "\t3. Systemopdatering"
echo -e "\t4. Daglig backup til ekstern harddisk"
echo -e "\t5. Backup af dokumenter til usb"
echo -e "\t6. Backup af billeder til usb"
echo -e "\t7. Backup af pakkeliste til usb"
echo -e "\t8. Afmonter ekstern harddisk"
echo -e "\t9. Afmonter usb-nøgle"
echo -e "\t0. Luk\n\n"
echo -en "\t\tVælg menu nr: "
read -n 1 option
}

#Menuvalgene som bruger de ovenfor definerede funktioner

while [ 1 ]
do
menu
case $option in
0) break ;;
1) ryddeop ;;
2) pakkelistehome;;
3) opdatere ;;
4) fuldbackup ;;
5) docsbackup ;;
6) billedbackup ;;
7) pakkelistebackup ;;
8) afmonter_hd ;;
9) afmonter_usb ;;
*) clear
echo -e "\n\t\tDette valg er ikke muligt";;
esac
echo -e "\n\t\t\tOpgaven er udført".
echo -en "\n\tTryk på en tilfældig tast for at fortsætte "
read -n 1 line
done
clear


Stromata - eller Stromateis - kaldte Klement af Alexandria sit værk af tanker om mangt og meget.
Det betyder noget i retning af "Kludetæppet", da det var sammensat af mange forskellige stykker.
På samme måde er et liv ganske sjældent en helhed som er vævet i ét stykke, men snarere netop et patchwork.
En del af mit livs kludetæppe kan du finde på disse sider

Use OpenDNS

Brug DuckDuckGo