Bestand: /home/karel/scripts/ssync.sh Pagina 1 van 6

Vergelijkbare documenten
Bestand: /home/karel/scripts/mkusb Pagina 1 van 6

Bestand: /home/karel/scripts/nas Pagina 1 van 8

Bestand: /home/karel/scripts/google-drive Pagina 1 van 5

Bestand: /home/karel/scripts/canon-mp495series Pagina 1 van 10

Bestand: /home/karel/scripts/start-installatie Pagina 1 van 10

Bestand: /home/karel/scripts/nas Pagina 1 van 9

Bestand: /home/karel/scripts/printer-install Pagina 1 van 10

Bestand: /home/karel/scripts/start-install Pagina 1 van 11

Bestand: /home/karel/scripts/backup Pagina 1 van 14

Bestand: /home/karel/scripts/lshost Pagina 1 van 7

Bestand: /home/karel/scripts/canon-mg3500series Pagina 1 van 10

Bestand: /home/karel/scripts/canon-mp495series Pagina 1 van 11

Bestand: /home/karel/scripts/canon-mg3500series Pagina 1 van 9

Bestand: /home/karel/scripts/youtube-downloader Pagina 1 van 7

Bestand: /home/karel/scripts/restore Pagina 1 van 16

Bestand: /home/karel/scripts/deploy Pagina 1 van 20

Prullenbak ledigen via terminal

Bestand: /home/karel/scripts/instal-lubuntu desktop.sh Pagina 1 van 5

Checklist archiveren

Bestand: /home/karel/scripts/instal-xubuntu desktop.sh Pagina 1 van 5

Updateprocedure in vogelvlucht Stap 1: Updatebestanden downloaden Stap 2: Controle vooraf... 4

vroeger: 15 jaar unix systeem beheer/software development en 5 jaar infrastructuur architect (unix/blades)

We beginnen met een strikvraag: Welk van de volgende zijn bestanden?

Installatie Mplus Touch Screen Kassa

Automagisch installeren van OES en SLES. Frank Korpershoek Jeroen Bannink

Rsync: Het ultieme Back-up Systeem

Gebruik van command-line operating systems

How To: Setup MGE Network Shutdown Module V3 op het service console binnen VMware ESX 3.0.2

Installeren van het programma Shop Pro

Van dvd naar webserver. Marcel Nijenhof 18 Juli

SERVER MONITOR SMS SERVER

HowTo => OpenBSD => Local Caching DNS + DNSSEC (BIND)

Bestand: /home/karel/scripts/install-ubuntu desktop.sh Pagina 1 van 8

NAS 259 Uw gegevens beveiligen met Remote Sync (Rsync)

Friesland College Leeuwarden

Rhino: Back-up maken. RsyncBackup

Opdracht Linux/Unix. Maarten Tutak. 20 Mei 2012

Optifile Server Installatie

Het handboek van KBackup. Martin Koller

Handleiding Solis-VPN Pagina 1 Versie: 1.3 Datum: mei 2013

Handleiding installatie en gebruik VPN

Firebird backup/restore

Werkplekbeheer en kantoorautomatisering Examennummer: Datum: 24 maart 2012 Tijd: 13:00 uur - 14:30 uur

Korte uitleg: Mounten van filesystemen

ClockWise 3.0 installatie handleiding

Het handboek van KDiskFree. Jonathan Singer Michael Kropfberger Vertaler/Nalezer: Frank Mulder Vertaler/Nalezer: Tom Albers

Licenties voor Fiery-opties beheren op een clientcomputer

Backup maken. Backup terugzetten. H O O F D S T U K 4 Backup

Backup via King Het is ook mogelijk om via King een backup te maken dat doet u door naar Algemeen > Administratie > Backup maken te gaan

Hoe download en installeer ik de software 15.2? Lees voordat u begint dit document volledig door en sluit alle programma s af.

Veel gestelde vragen nieuwe webloginpagina

Problemen met zware bestanden?

NETWERKHANDLEIDING. Afdruklogboek op netwerk opslaan. Versie 0 DUT

OpenVPN Client Installatie

Macrium Reflect Free. Mirror Back-up:

Factuur2King Single User release notes

Handleiding InCD Reader

Unify- SLES Linux update handleiding

Korte uitleg: Wat doet de shell met mijn commandoregel?

WELKOM in het Computercafé. 21 februari 2019

Computer-onderhoud Agenda Echt schoonmaken. Echt schoonmaken. Partitioneren. Schijforganisatie. Beperkte mogelijkheden via schijfbeheer

Seagate Antivirus. Seagate Technology LLC S. De Anza Boulevard Cupertino, CA VS

Help voor Fiery-opties 1.3 (server)

Nero AG SecurDisc Viewer

Hoe een USB schijf (stick, harde schijf) leegmaken vanuit de terminal

Linux: watermerk in foto's maken

Installatiehandleiding. Coach Studio MV 6.42 (NL) CENTRUM VOOR MICROCOMPUTER APPLICATIES

Installatiehandleiding Windows 98

Checklist Installatie PC5 Ubuntu 9.04 Desktop i

HANDLEIDING OWNCLOUD WINDOWS CLOUDDISKSPACE

NAS 109 NAS gebruiken met Linux

Postcode module Webservices

Windows XP aanmaken CSR

Nero AG Nero DiscCopy

Rodin installatiehandleiding (vanaf versie 2.1.xxx.x)

KeyLink B.V. KeyLink CTI Client Installation Manual - Dutch

Studietaak 4 Hoe installeer ik software? Apache Webserver

Om een ander voorbeeld aan te halen waar er wel een opsplitsing van toepassing is:

Welkom bij de Picture Package Producer 2. Picture Package Producer 2 starten en afsluiten. Stap 1: Beelden selecteren

Installatie instructies. UBplus. Voor Linux / Samba. 12-sep-11. Datum: Ref erentie: Versie: 1.1

myphp Guestbook v Copyright Claudio Pose myphp Guestbook was an Open Source project from <Networkarea.ch>, Claudio Pose.

Installatie en configuratie documentatie

Speed Camera Plus Gebruikershandleiding voor Pioneer AVIC-HD1BT

Upgrade Accowin van versie 1 naar versie 2

Softwarehouse Macco. Stap 2: Indien u dit nog niet gedaan heeft, download dan het installatiebestand voor Macco 2013 vanaf onze website.

AFO 142 Titel Aanwinsten Geschiedenis

Inhoudsopgave. Inhoudsopgave. Legal Insolve Update handleiding 1. Licentiebestand... vernieuwen 2008 KSU

Installeren update KLA

Eenvoudig een backup van je bestanden maken. G.v.Eijndhoven ( )

MC Slotervaart. Handleiding Thuiswerken

Installatie ArcGIS Desktop Basis, ArcGIS Engine en Download ArcGIS Server

Maak een image file van je harddisk

De INTELEC programmatuur is beveiligd middels een keylock :

Welkom bij de Picture Package Producer 2

Migratie van Unicenta Derby naar Chromis

(X)dialog: Pratende shells

Handleiding installatie Kluwer Belastingpraktijk

Porthus Communicator Client G E B R U I K E R S H A N D L E I D I N G

Transcriptie:

Bestand: /home/karel/scripts/ssync.sh Pagina 1 van 6 1 #!/bin/bash 2 ############################################################################# 3 # Bestand: ssync.sh # 4 # Doel: Script voor het kopiëren van externe harde schijven naar een # 5 # NAS. # 6 # Gebruik:./ssync.sh [opties] # 7 # Gebruikt: script-common.sh (algemene variabelen en functies) # 8 # Auteur: Karel Zimmer (http://karelzimmer.nl, info@karelzimmer.nl) # 9 # ------------------------------------------------------------------------- # 10 # Auteursrecht 2011-2014 Karel Zimmer. # 11 # # 12 # Dit programma is vrije software: u mag het herdistribueren en/of wijzigen # 13 # onder de voorwaarden van de GNU Algemene Publieke Licentie zoals # 14 # gepubliceerd door de Free Software Foundation, onder versie 3 van de # 15 # Licentie of (naar Uw keuze) elke latere versie. # 16 # # 17 # Dit programma is gedistribueerd in de hoop dat het nuttig zal zijn maar # 18 # ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garanties die # 19 # GEBRUIKELIJK ZIJN IN DE HANDEL of voor BRUIKBAARHEID VOOR EEN SPECIFIEK # 20 # DOEL. Zie de GNU Algemene Publieke Licentie voor meer details. # 21 # # 22 # U hoort een kopie van de GNU Algemene Publieke Licentie te hebben # 23 # ontvangen samen met dit programma. Als dat niet het geval is, zie # 24 # http://www.gnu.org/licenses/. # 25 # ------------------------------------------------------------------------- # 26 # Versies: 1.0.0 2011-05-18 Eerste versie. # 27 ############################################################################# 28 readonly VERSION_NUMBER=1.11.0 29 readonly RELEASE_DATE=2014-10-02 30 31 ############################################################################# 32 # Instellingen # 33 ############################################################################# 34 35 #---------------------------------------------------------------------------# 36 # Algemene instellingen # 37 # ------------------------------------------------------------------------- # 38 # Lees de algemene variabelen en functies in. # 39 #---------------------------------------------------------------------------# 40 source script-common.sh 2> /dev/null { 41 echo "Het algemeen scriptbestand 'script-common.sh'" >&2 42 echo 'is niet gevonden of bevat fouten.' >&2 43 echo 'Dit algemeen scriptbestand wordt gewoonlijk door' 44 echo "script getscripts (gs) gedownload en in '/tmp' geplaatst." 45 echo "Is 'cd /tmp; wget karelzimmer.nl/gs; bash gs' uitgevoerd?" 46 echo 'Voor scripts zie http:/karelzimmer.nl, klik op Linux.' 47 exit 1 48 } 49 50 #---------------------------------------------------------------------------# 51 # Globale constanten # 52 #---------------------------------------------------------------------------# 53 readonly SCRIPT_NEEDS_SUDO=false # Uitvoeren als standaardgebruiker 54 readonly FIRST_COPYRIGHT_YEAR=2011 # Eerste auteursrechtjaar 55 56 readonly SMB=smb://mybooklive # Server Message Block servernaam 57 # (CIFS) 58 readonly NASSHR1="$SMB/backups" # NAS share #1 59 readonly NASSHR2="$SMB/public" # NAS share #2 60 61 declare GVFS="$HOME/.gvfs" # Koppelpunt voor Ubuntu 12.10 62 if [[ -d $GVFS ]]; then 63 readonly NASMNT1="$GVFS/backups op mybooklive" 64 # NAS koppelpunt #1 65 readonly NASMNT2="$GVFS/public op mybooklive" 66 # NAS koppelpunt #2

Bestand: /home/karel/scripts/ssync.sh Pagina 2 van 6 67 else 68 GVFS="/run/user/$USER/gvfs" # Koppelpunt vanaf Ubuntu 12.10 69 readonly NASMNT1="$GVFS/smb-share:server=mybooklive,share=backups" 70 # NAS koppelpunt #1 71 readonly NASMNT2="$GVFS/smb-share:server=mybooklive,share=public" 72 # NAS koppelpunt #2 73 fi 74 readonly GVFS # GNOME virtual filesystem koppelpunt 75 76 readonly HDDVOL1=LaCie_1TB # HDD volumenamen 77 readonly HDDVOL2=ADATA_320GB 78 readonly HDDVOL3=LaCie_160GB 79 80 readonly HDDMNT1="$MOUNTDIR/$HDDVOL1" # HDD koppelpunten 81 readonly HDDMNT2="$MOUNTDIR/$HDDVOL2" 82 readonly HDDMNT3="$MOUNTDIR/$HDDVOL3" 83 84 readonly -a FROM1=( 85 [1]="$HDDMNT1/Backups" 86 "$HDDMNT2/Backups" 87 "$HDDMNT3/Backups" 88 ) # Bronmappen #1 89 90 readonly TO1="$NASMNT1" # Doelmap #1 91 92 readonly -a FROM2=( 93 [1]="$HDDMNT1/Afbeeldingen" 94 "$HDDMNT1/Foto's" 95 "$HDDMNT1/Muziek" 96 "$HDDMNT1/Video's" 97 "$HDDMNT2/Afbeeldingen" 98 "$HDDMNT2/Foto's" 99 "$HDDMNT2/Muziek" 100 "$HDDMNT2/Video's" 101 "$HDDMNT3/Afbeeldingen" 102 "$HDDMNT3/Foto's" 103 "$HDDMNT3/Muziek" 104 "$HDDMNT3/Video's" 105 ) # Bronmappen #2 106 107 readonly TO2="$NASMNT2" # Doelmap #2 108 109 readonly E_MOUNT_NAS_FAILED=64 # Foutcode 110 111 #---------------------------------------------------------------------------# 112 # Globale variabelen # 113 #---------------------------------------------------------------------------# 114 115 ############################################################################# 116 # Functies (op volgorde van uitvoering) # 117 ############################################################################# 118 119 #-Functie-------------------------------------------------------------------# 120 # Naam: toon_hulp # 121 # Doel: Uitleg werking script. # 122 # Arg.: Geen argumenten. # 123 #---------------------------------------------------------------------------# 124 toon_hulp() { 125 toon_gebruik "$SCRIPT_NEEDS_SUDO" "$OPTION_USAGE" 126 cat << HULP 127 128 Beschrijving: 129 Script voor het kopiëren van externe harde schijven naar een NAS. 130 131 Dit script kopieert de inhoud van externe harde schijven naar een NAS. 132 Bijvoorbeeld de inhoud gemaakt door script sync.

Bestand: /home/karel/scripts/ssync.sh Pagina 3 van 6 133 De namen van de harde schijven staan "hard-coded" in dit script. 134 135 $OPTIONS_HELP_SC 136 HULP 137 } 138 139 #-Functie-------------------------------------------------------------------# 140 # Naam: controleer_invoer # 141 # Doel: Initiële controles en/of acties. # 142 # Arg.: Geen argumenten. # 143 #---------------------------------------------------------------------------# 144 controleer_invoer() { 145 : # no-op 146 } 147 148 #-Functie-------------------------------------------------------------------# 149 # Naam: toon_invoer # 150 # Doel: Toon wat het script gaat doen. # 151 # Arg.: Geen argumenten. # 152 #---------------------------------------------------------------------------# 153 toon_invoer() { 154 local -i fromnum 155 local msg 156 157 clear 158 log "$DASHES" 159 normal "$HEADER" 160 normal 161 162 msg='sync van: ' 163 for (( fromnum=1; fromnum<=${#from1[*]}; fromnum++ )); do 164 normal "${msg}1 <- ${FROM1[$fromnum]}" 165 msg=' ' 166 done 167 168 for (( fromnum=1; fromnum<=${#from2[*]}; fromnum++ )); do 169 normal "${msg}2 <- ${FROM2[$fromnum]}" 170 msg=' ' 171 done 172 173 normal "Sync naar: 1 -> $TO1" 174 normal " 2 -> $TO2" 175 normal "Logboek: $LOG" 176 log "$DASHES" 177 normal 178 } 179 180 #-Functie-------------------------------------------------------------------# 181 # Naam: koppel_schijven_aan # 182 # Doel: Koppel partities netwerkschijven aan. # 183 # Arg.: Geen argumenten. # 184 #---------------------------------------------------------------------------# 185 koppel_schijven_aan() { 186 gvfs-mount "$NASSHR1" &>> "$LOG" 187 cd "$NASMNT1" &>> "$LOG" # "Activeer" 188 if [[! -e $NASMNT1 ]]; then 189 error "Aankoppelen NAS mislukt, $NASSHR1 -> $NASMNT1." 190 exit $E_MOUNT_NAS_FAILED 191 fi 192 193 gvfs-mount "$NASSHR2" &>> "$LOG" 194 cd "$NASMNT2" &>> "$LOG" # "Activeer" 195 if [[! -e $NASMNT2 ]]; then 196 error "Aankoppelen NAS mislukt, $NASSHR2 -> $NASMNT2." 197 exit $E_MOUNT_NAS_FAILED 198 fi

Bestand: /home/karel/scripts/ssync.sh Pagina 4 van 6 199 } 200 201 #-Functie-------------------------------------------------------------------# 202 # Naam: kopieer_naar_doelmap_1 # 203 # Doel: Kopieer naar map 1. # 204 # Arg.: Geen argumenten. # 205 #---------------------------------------------------------------------------# 206 kopieer_naar_doelmap_1() { 207 local -i fromnum 208 local -i rsync_rc=0 209 local -i rsync_totrc=0 210 211 if [[ -d $TO1 ]]; then 212 213 spinner 'aan' 214 215 #-------------------------------------------------------------------# 216 # Voor het kopiëren naar NAS wordt rsync gebruikt. # 217 #-------------------------------------------------------------------# 218 for (( fromnum=1; fromnum<=${#from1[*]}; fromnum++ )); do 219 if [[ -d ${FROM1[$fromnum]} ]]; then 220 normal "Sync van ${FROM1[$fromnum]} naar $TO1..." 221 rsync --archive \ 222 --verbose \ 223 "${FROM1[$fromnum]}" \ 224 "$TO1" \ 225 &>> "$LOG" 226 rsync_rc=$? 227 rsync_totrc=$(( rsync_totrc + rsync_rc )) 228 else 229 warning "Sync van ${FROM1[$fromnum]} wordt overgeslagen, \ 230 media is niet aangekoppeld." 231 fi 232 done 233 234 spinner 'uit' 235 236 verwerk_rc "$PROGNAME: $FUNCNAME[$LINENO]: sync naar doelmap1" \ 237 $rsync_totrc 0 'noabend' MAXRC 238 else 239 error "Sync naar $TO1 wordt overgeslagen, want niet aangekoppeld." 240 fi 241 } 242 243 #-Functie-------------------------------------------------------------------# 244 # Naam: kopieer_naar_doelmap_2 # 245 # Doel: Kopieer naar map 2. # 246 # Arg.: Geen argumenten. # 247 #---------------------------------------------------------------------------# 248 kopieer_naar_doelmap_2() { 249 local -i fromnum 250 local -i rsync_rc=0 251 local -i rsync_totrc=0 252 253 if [[ -d $TO2 ]]; then 254 255 spinner 'aan' 256 257 #-------------------------------------------------------------------# 258 # Voor het kopiëren naar NAS wordt rsync gebruikt. # 259 #-------------------------------------------------------------------# 260 for (( fromnum=1; fromnum<=${#from2[*]}; fromnum++ )); do 261 if [[ -d ${FROM2[$fromnum]} ]]; then 262 normal "Sync van ${FROM2[$fromnum]} naar $TO2..." 263 rsync --archive \ 264 --verbose \

Bestand: /home/karel/scripts/ssync.sh Pagina 5 van 6 265 "$TO2" \ 266 &>> "$LOG" 267 rsync_rc=$? 268 rsync_totrc=$(( rsync_totrc + rsync_rc )) 269 else 270 warning "Sync van ${FROM2[$fromnum]} wordt overgeslagen, \ 271 media is niet aangekoppeld." 272 fi 273 done 274 275 spinner 'uit' 276 277 verwerk_rc "$PROGNAME: $FUNCNAME[$LINENO]: sync naar doelmap2" \ 278 $rsync_totrc 0 'noabend' MAXRC 279 else 280 error "Sync naar $TO2 wordt overgeslagen, want niet aangekoppeld." 281 fi 282 } 283 284 #-Functie-------------------------------------------------------------------# 285 # Naam: koppel_schijven_af # 286 # Doel: Koppel partities netwerkschijven af. # 287 # Arg.: Geen argumenten. # 288 #---------------------------------------------------------------------------# 289 koppel_schijven_af() { 290 normal 'Ontkoppel alle schijven en/of schakel deze uit...' 291 292 gvfs-mount --unmount "$NASSHR1" 293 gvfs-mount --unmount "$NASSHR2" 294 295 if [[ -e $HDDMNT1 ]]; then 296 umount "$HDDMNT1" 297 fi 298 299 if [[ -e $HDDMNT2 ]]; then 300 umount "$HDDMNT2" 301 fi 302 303 success 'Alle schijven kunnen uitgeschakeld en/of verwijderd worden.' 304 305 } 306 307 #-Functie-------------------------------------------------------------------# 308 # Naam: toon_afsluiten # 309 # Doel: Afsluitende meldingen en/of acties. # 310 # Arg.: Geen argumenten. # 311 #---------------------------------------------------------------------------# 312 toon_afsluiten() { 313 : # no-op 314 } 315 316 ############################################################################# 317 # Hoofdlijn # 318 ############################################################################# 319 # init_script 320 { 321 verwerk_invoer "$@" 322 controleer_gebruiker "$SCRIPT_NEEDS_SUDO" 323 controleer_invoer 324 } 325 # verwerk 326 { 327 bepaal_log "$SCRIPT_NEEDS_SUDO" LOGDIR "$LOGFILE" LOG 328 toon_invoer 329 toon_gestart 330 koppel_schijven_aan

Bestand: /home/karel/scripts/ssync.sh Pagina 6 van 6 331 kopieer_naar_doelmap_1 332 kopieer_naar_doelmap_2 333 koppel_schijven_af 334 toon_gestopt 335 } 336 # afsl_script 337 { 338 toon_afsluiten 339 toon_afsluiten_sc 340 exit $MAXRC 341 } 342 343 # Einde script.