Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av Johnny Rosenberg »

Blir så trött… Det var nu ett tag sedan jag uppgraderade, men jag har nu Ubuntu 9.10 och hade förut Ubuntu 8.10. Jag har inte uppgraderat utan har installerat Ubuntu 9.10 på en tom och ny hårddisk i och med att den gamla helt enkelt visade sig vara för liten. Jag har kvar den gamla disken med gamla Ubuntu 8.10 och har satt den i ett USB-kabinett.

I alla fall har jag haft ett skript i något år eller två nu som gör säkerhetskopior. Inget märkvärdigt alls. Det använder rsync för själv grovjobbet och zenity för kommunikation med användaren. Säkerhetskopiorna hamnar på en extern USB-disk som heter Backup och dyker upp på skrivbordet som just Backup.

Sedan jag började använda Ubuntu 9.10 har jag dock märkt en del olägenheter:
  • Säkerhetskopieringen tar mycket längre tid, och då menar jag mycket - det som tidigare tog några sekunder tar nu flera minuter
  • Skrivbordsikonen försvinner och dyker upp hela tiden under pågående säkerhetskopiering
  • Delar av jobbet blir inte gjort - kollade exempelvis den enda fil jag idag ändrat och den var inte med i min logg över huvud taget, och mycket riktigt låg där också gårdagens version av filen, inte dagens
Problemen märks oftast då jag startar mitt skript innan hårddisken är påslagen. Så här ser mitt skript ut i just den delen som tar hand om det som ska hända om hårddisken inte är inkopplad:

Kod: Markera allt

#!/bin/sh
BACKUPDISK="/media/Backup"
TF1="Målmapp saknas"
TF2="Målmapp hittad"
MEDD1="Koppla in din lagringsenhet inom 1 minut"
MEDD2="Hittade lagringsenheten"
ERROR2="Lagringsenheten är inte inkopplad"

# Avbryt om den externa hårddisken inte är uppkopplad.
if [ ! -e "${BACKUPDISK}" ]; then
   zenity --title "${TF1}" --info --text "${MEDD1}" --timeout 5 &
   TID=0
   while [ ! -e "${BACKUPDISK}" ]; do
      sleep 1
      TID=$(expr $TID + 1)
      if [ $TID -ge 60 ]; then
         zenity --title "${TF1}" --info --text "${ERROR2}" --timeout 5 &
         exit 3
      fi
   done
   zenity --title "${TF2}" --info --text "${MEDD2}" --timeout 5 &
fi
Eller med vanliga ord: Om inte /media/Backup går att nå försöker skriptet igen varje sekund i upp till en minut. En dialog poppar upp och upplyser om att man har en minut på sig att koppla in sin hårddisk. Hittas den inte under den tiden avslutas skriptet med ett felmeddelande, annars påbörjas säkerhetskopieringen med de inställningar man gjort tidigare, som ej framgår av ovanstående urval.

Detta funkade perfekt i Ubuntu 8.10 med den version av rsync som där ingick.

Någon annan som märkt liknande saker eller någon som har någon idé om hur man kan gå vidare och eventuellt hitta felet?

Som sagt, oftast funkar det bättre när man kopplat in hårddisken först och sedan kör skriptet, men det är inte alltid det blir helt klockrent då heller.
Senast redigerad av 1 Johnny Rosenberg, redigerad totalt 23 gånger.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av Johnny Rosenberg »

Glömde också att nämna att, enligt mina loggar, så verkar en massa filer säkerhetskopieras trots att dessa inte ändrats de senaste 100 åren, trots att jag valt att bara skriva ändrade filer till den externa hårddisken. Mycket riktigt så funkar detta kanske till 99,9% eller så, men som sagt så verkar det som att rsync tror att vissa filer har ändrats fast de helt enkelt inte ens kan ha ändrats.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av Johnny Rosenberg »

Anade väl att ingen skulle ha en susning om detta heller.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
mrfab
AVREGISTRERAD
Inlägg: 922
Blev medlem: 16 maj 2007, 22:30
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: sweden

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av mrfab »

Johnny Rosenberg skrev:Anade väl att ingen skulle ha en susning om detta heller.
Jag vet inte om det bara är jag som inte riktigt förstår vad du menar ursäkta mig för det då.Du skulle ju kunna radera alternativet # Avbryt om den externa hårddisken inte är uppkopplad.

Det kanske är så att operativet lyder ditt script
Användarvisningsbild
uppsalanet
Fadder
Inlägg: 257
Blev medlem: 29 sep 2008, 22:05
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Uppsala

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av uppsalanet »

Tips #2
Strunta i Zenity.
Eka ut allt till en riktig logfil där loggarna ska vara.

Kod: Markera allt

LOG="Path/to/logs/mylog.log"
exec >>$LOG
exec 2>&1
..
..
..
//Fredrik
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av Johnny Rosenberg »

mrfab skrev:
Johnny Rosenberg skrev:Anade väl att ingen skulle ha en susning om detta heller.
Jag vet inte om det bara är jag som inte riktigt förstår vad du menar ursäkta mig för det då.Du skulle ju kunna radera alternativet # Avbryt om den externa hårddisken inte är uppkopplad.

Det kanske är så att operativet lyder ditt script
Fast då undrar man ju över all aktivitet med hårddiskarna. Något gör den, frågan är bara vad. Det tar en evig tid, men det är inte alltid som något vettigt blir gjort, så att säga.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av Johnny Rosenberg »

uppsalanet skrev:Tips #2
Strunta i Zenity.
Eka ut allt till en riktig logfil där loggarna ska vara.

Kod: Markera allt

LOG="Path/to/logs/mylog.log"
exec >>$LOG
exec 2>&1
..
..
..
//Fredrik
Hm… jag ekar ut saker till en loggfil, men kanske på fel sätt, menar du?
Så här ser mitt simpla skript ut i sin helhet:

Kod: Markera allt

#!/bin/sh
#                                                                           #
# ————————————————————————————————————————————————————————————————————————— #
# EXIT-KODER                                                                #
# ————————————————————————————————————————————————————————————————————————— #
# 0 - Inga fel fångades upp av den bristfälliga felhanteringen              #
# 1 - Skriptet avbröts av användaren                                        #
# 2 - Användaren valde ett alternativ som ännu inte är implementerat        #
# 3 - Inget medium för säkerhetskopiering kunde hittas                      #
# 4 - Beroenden ej tillfredsställda                                         #
# 5 - Kunde inte läsa in variabler från fil                                 #
# 9 - Övriga fel                                                            #
#                                                                           #

# Variabler för destinationsmappar
BACKUPDISK="/media/Backup"
BACKUPFOLDER="${BACKUPDISK}/PB"
SYNCFOLDER="${BACKUPDISK}/PBEee"

#Variabler för loggfiler
LOGFOLDER="${HOME}/Eget/.Backup/PB/Logg"
LOGBACKUP="${LOGFOLDER}/Säkerhetskopiering"
LOGRESTORE="${LOGFOLDER}/Återställning"
LOGBACKUPFOLDER="${BACKUPFOLDER}/guraknugen/Eget/.Backup/PB/Logg"

# Variabler för utelämnande av mappar
EXCLUDELIST="${HOME}/Eget/.Backup/PB/Skript/Undantag/Excluded"
EXCLUDE="--exclude-from ${EXCLUDELIST}"

# Variabel för borttagande av filer i målmapp
# som inte finns i originalmapp
DELETE="--delete-during --delete-excluded"

#Variabler för text i dialogbox
B1="Kopierar endast ändrade filer"
B2="Gör en identisk kopia av valda mappar"
B3="Återställer din senaste säkerhetskopia"
B4="Ersätter inaktuella filer med de senaste"

ERROR1="Detta val har ännu ingen funktionalitet"
ERROR2="Lagringsenheten är inte inkopplad"

I="Välj typ av säkerhetskopiering:"

MEDD1="Koppla in din lagringsenhet inom 1 minut"
MEDD2="Hittade lagringsenheten"

T1="Säkerhetskopiering"
T2="Kloning"
T3="Återställning"
T4="Synkronisering"

TB="Säkerhetskopiering"

TF1="Målmapp saknas"
TF2="Målmapp hittad"

TK="Färdig"
KLAR="en är klar!"

# Öppna en dialog där val kan göras
SVAR=$(zenity --list --title "${TB}" --column "${I}" "${T1}" "${T2}" "${T3}" "${T4}")

if [ $? -ne 0 ]; then
   exit 1 # Klickade avbryt eller krysset
fi

# Avbryt om den externa hårddisken inte är uppkopplad.
if [ ! -e "${BACKUPDISK}" ]; then
   zenity --title "${TF1}" --info --text "${MEDD1}" --timeout 5 &
   TID=0
   while [ ! -e "${BACKUPDISK}" ]; do
      sleep 1
      TID=$(expr $TID + 1)
      if [ $TID -ge 60 ]; then
         zenity --title "${TF1}" --info --text "${ERROR2}" --timeout 5 &
         exit 3
      fi
   done
   zenity --title "${TF2}" --info --text "${MEDD2}" --timeout 5 &
fi

# Gör själva säkerhetskopieringen
if [ $SVAR = $T1 -o $SVAR = $T2 -o $SVAR = $T4 ]; then
   # Se till att loggfilen inte växer okontrollerat.
   # Om den inte redan existerar, skapa den.
   if [ -e "${LOGBACKUP}" ]; then
      mv "${LOGBACKUP}" "${LOGBACKUP}.old"
      tail --bytes=10000000  "${LOGBACKUP}.old" > "${LOGBACKUP}"
      rm "${LOGBACKUP}.old"
   else
      touch "${LOGBACKUP}"
   fi
   
   echo "Startad: $(date +'%A %F %T')" >> "${LOGBACKUP}"
   
   rsync -auv ${DELETE} ${EXCLUDE} "${HOME}" "${BACKUPFOLDER}/" >> "${LOGBACKUP}"
   if [ $SVAR = $T2 ]; then
      rsync -auv ${DELETE} ${EXCLUDE} "${HOME}" "${SYNCFOLDER}/" >> "${LOGBACKUP}"
   else
      rsync -auv ${EXCLUDE} "${HOME}" "${SYNCFOLDER}/" >> "${LOGBACKUP}"
   fi
   
   echo "Klar: $(date +'%A %F %T')" >> "${LOGBACKUP}"
   echo >> "${LOGBACKUP}"
fi

# Gör återställning. Körs om man valt Återställning i menyn.
if [ $SVAR = $T3 ]; then
   # Se till att loggfilen inte växer okontrollerat.
   # Om den inte redan existerar, skapa den.
   if [ -e "${LOGRESTORE}" ]; then
      mv "${LOGRESTORE}" "${LOGRESTORE}.old"
      tail --bytes=10000000  "${LOGRESTORE}.old" > "${LOGRESTORE}"
      rm "${LOGRESTORE}.old"
   else
      touch "${LOGRESTORE}"
   fi

   # Återställning
   echo "Startad: $(date +'%A %F %T')" >> "${LOGRESTORE}"
   
   rsync -auv "${BACKUPFOLDER}/${LOGNAME}/" "${HOME}/" >> "${LOGRESTORE}"

   echo "Klar: $(date +'%A %F %T')" >> "${LOGRESTORE}"
   echo >> "${LOGRESTORE}"
fi

# Gör återställning. Körs om man valt Synkronisering i menyn.
# Synkronisering är ju egentligen samma  sak som säkerhets-
# kopiering följt av återställning. Det är därför rsync hela
# tiden körs med flaggan -u, som gör att inga filer kan er-
# sättas av äldre filer.
if [ $SVAR = $T4 ]; then
   # Se till att loggfilen inte växer okontrollerat.
   # Om den inte redan existerar, skapa den.
   if [ -e "${LOGRESTORE}" ]; then
      mv "${LOGRESTORE}" "${LOGRESTORE}.old"
      tail --bytes=10000000  "${LOGRESTORE}.old" > "${LOGRESTORE}"
      rm "${LOGRESTORE}.old"
   else
      touch "${LOGRESTORE}"
   fi

   # Återställning
   echo "Startad: $(date +'%A %F %T')" >> "${LOGRESTORE}"
   
   rsync -auv "${SYNCFOLDER}/${LOGNAME}/" "${HOME}/" >> "${LOGRESTORE}"

   echo "Klar: $(date +'%A %F %T')" >> "${LOGRESTORE}"
   echo >> "${LOGRESTORE}"
fi

zenity --title "${TK}" --info --text "${SVAR}${KLAR}"
Som framgår av skriptet skrev jag det innan jag visste hur man skriver och anropar funktioner… Det finns säkert sofistikerade sätt att skriva samma sak mycket kortare och elegantare, men jag har inte tagit mig förbi nybörjarstadiet än och kommer nog aldrig att göra heller.
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
uppsalanet
Fadder
Inlägg: 257
Blev medlem: 29 sep 2008, 22:05
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Uppsala

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av uppsalanet »

Tjena,
Prova kör programmet med flaggan x från terminalen

Kod: Markera allt

sh -x ./ditt_script.sh
Har ingen stor erfarenhet av zenity, försöker därför undvika det...

Gällande log och beroende på hur zenity beter sig:
efter att du deklarerat variablerna:

Kod: Markera allt

exec >>"${LOGBACKUP}"
exec 2>&1

..
..
..
byt echo "Startad: $(date +'%A %F %T')" >> "${LOGBACKUP}"
till echo "Startad: $(date +'%A %F %T')" 
Skicka loggarna till /var/log och skapa logrotate

Kod: Markera allt

man logrotate
addera logen till

Kod: Markera allt

gnome-system-log
Tipset som jag kan ge dig är att logga; logga; logga
och använd sendmail, mailx eller motsvarande för viktiga händelser som du bör veta.

Lycka till och ju simplare script bättre är dom :)

//Fredrik

ps.
Tycker att

Kod: Markera allt

echo >> "${LOGBACKUP}" 
borde likna
echo "">> "${LOGBACKUP}"
eller
echo "\n\r">> "${LOGBACKUP}"
vet inte om jag skulle lita på denna

Kod: Markera allt

EXCLUDELIST="${HOME}/Eget/.Backup/PB/Skript/Undantag/Excluded"
eftersom HOME inte är deklarerat och blir då beroende. Kanske kan någon annan i detta forum som vet bekräfta.

Sist och mins så kan du skapa en funktion som du anropar av denna:

Kod: Markera allt

   # Se till att loggfilen inte växer okontrollerat.
   # Om den inte redan existerar, skapa den.
   if [ -e "${LOGRESTORE}" ]; then
      mv "${LOGRESTORE}" "${LOGRESTORE}.old"
      tail --bytes=10000000  "${LOGRESTORE}.old" > "${LOGRESTORE}"
      rm "${LOGRESTORE}.old"
   else
      touch "${LOGRESTORE}"
   fi
Ds.
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av Johnny Rosenberg »

uppsalanet skrev:vet inte om jag skulle lita på denna

Kod: Markera allt

EXCLUDELIST="${HOME}/Eget/.Backup/PB/Skript/Undantag/Excluded"
eftersom HOME inte är deklarerat och blir då beroende. Kanske kan någon annan i detta forum som vet bekräfta.
Är inte HOME alltid deklarerat? Jag använder ju HOME överallt (nästan) och det har ju alltid fungerat. Vad menar du beroende? Beroende av vad då?
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid
Användarvisningsbild
uppsalanet
Fadder
Inlägg: 257
Blev medlem: 29 sep 2008, 22:05
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Uppsala

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av uppsalanet »

Johnny Rosenberg skrev:
uppsalanet skrev:vet inte om jag skulle lita på denna

Kod: Markera allt

EXCLUDELIST="${HOME}/Eget/.Backup/PB/Skript/Undantag/Excluded"
eftersom HOME inte är deklarerat och blir då beroende. Kanske kan någon annan i detta forum som vet bekräfta.
Är inte HOME alltid deklarerat? Jag använder ju HOME överallt (nästan) och det har ju alltid fungerat. Vad menar du beroende? Beroende av vad då?
Vem som exekverar skriptet, kanske vill du lägga in den i crontab som root eller dyl.
Sitter själv på HP-UX och utvecklar, försöker alltid undvika att ta saker för givet. Kanske vill du porta detta senare där just HOME inte är deklarerat. Skapa en ini-fil som håller dina variabler som skapas first run.

//Fredrik
Användarvisningsbild
alatariel
Inlägg: 750
Blev medlem: 20 aug 2007, 13:33
OS: Kubuntu
Utgåva: 18.04 Bionic Beaver LTS
Ort: Upplands Väsby

Re: Pajasbeteende sedan uppgradering till Ubuntu 9.10…

Inlägg av alatariel »

vild gissning: kan det vara trackerd som spökar?
http://ubuntuforums.org/showthread.php?t=1179325
~~~ Kubuntu18.04 ~~~
Skriv svar

Återgå till "Terminalforum"