Artikelkategori: Scripting
Skriven av mdkdio 2020-12-13 23:11
url: 
Redigerad av: mdkdio  2020-12-14 12:40:00

rsync - synkronisera en lokal kopia av Slackware (14.2 eller -current)

rsync för att skapa en lokal kopia av slackware(64) käll-trädet

Antingen kör man detta med manuella kommandon, eller så använder man ett skript.
Vilket som fungerar bäst för dig avgör du.

Här tänker jag gå igenom hur ett skript kan se ut för current 64-bit:

Antingen via någon texteditor (kate,kwrite etc) eller via konsole/terminal (nano, vi etc)

Skapa en fil med valfritt namn (nedan heter filen rsync_current)
I mitt fall så valde jag att lägga skript-filen i en mapp ovanför målmappen som jag laddar ned till...

OBS! Lägg den inte i samma mapp som du laddar ned fil/mappstrukturen till, för då tas den bort.

nano rsync_current

Kod:
#!/bin/bash
#
# Ladda ner slackware current
# Source:
# valfri mirror, nedan exempel fungerade vid test (Svensk server för övrigt)
#
SOURCE="rsync://ftpmirror.infania.net/slackware/slackware64-current/"
# Replace slackware64-current with slackware-14.2 if you want to download
# the stable version instead
#
OPTIONS="-avzP --delete --delete-after"
EXCLUDE="--exclude=pasture --exclude=isolinux
--exclude=zipslack --exclude=source --exclude=testing/source
--exclude=extra/source"
#
# Script in this case is placed in Downloads
# and destination is /home/username/Downloads/slackware_current_mirror/
#
DEST="slackware_current_mirror"
#
case "$1" in

 "-c" )
 echo "Checking..."
 /usr/bin/rsync $OPTIONS $EXCLUDE --dry-run $SOURCE $DEST
 ;;

 "-d" )
 echo "Downloading..."
 /usr/bin/rsync $OPTIONS $EXCLUDE $SOURCE $DEST
 ;;
 
 * )
 echo "Usage: `basename $0` {-c|-d}"
 echo -e " -c : Check for updates"
 echo -e " -d : Download updates"
 exit
 ;;

esac
#

OPTIONS="-avzP...
-a = --archive
-v = --verbose
-z = --compress (IOFS inget egentligt behov för detta då rsync använder zlib
                 och de flesta filer rel till slackware är redan komprimerade
                 med xz)
-P = --progress (Visa nedladdnings processen)
--delete = Ta bort filer irrelevanta filer ifrån målmappen
--delete-after = mottagare tar bort filer efter överföring, inte under överföringen
--exclude = Radera också exkluderade filer från destinations mappen
--dry-run = Kör ett försöks test utan att några ändringar görs.

Om man vill så kan man även ange att man inte vill ladda ned enskilda filer, t.ex.
ANNOUNCE.14_2 (den är ju milt sagt gammal i detta fall då skriptet laddar ner
filer etc rel till current).
(syntax) --exclude=PATTERN = Exkludera fil(er) som matchar PATTERN
--exclude=ANNOUNCE.14_2

Har man många filer man inte vill ladda ner, kanman ange dess i en extern text fil.
(syntax)
--exclude-from=FILE
--exclude-from="exclude.list"

Samma sak om man vill använda en lista för filer man ska ladda ned.
--include-from=FILE

×