bfh / ABCD

2 stars 1 forks source link

Debian/Ubuntu Bash Script #6

Closed gradnik closed 8 years ago

gradnik commented 8 years ago

Um die Daten von einem Smartphone über das Raspberry Pi auf eine Festplatte zu kopieren, muss das Raspberry Pi als USB-Disk erkannt werden. Das Raspberry Pie führt dann ein Bash Script aus und kopiert die daten vom Handy auf die externe Festplatte.

Bash Sricpt: Backup Backup mit Tar: (damit es automatisch ist) 1: # tar -cvpzf /BackupDirectory/backupfilename.tar.gz /ImportantData/directory/path 2 (bsp. für/imp data auf root): # tar -cvpzf /mybackupfolder/backup.tar.gz /imp-data

new file: # vi /backup.sh (in /backup.sh)

!/bin/bash

Purpose = Backup of Important Data

Created on 17-1-2012

Author = gradnik

Version 1.0

START

TIME=date +%b-%d-%y # This Command will add date in Backup File Name. FILENAME=backup-$TIME.tar.gz # Here i define Backup file name format. SRCDIR=/imp-data # Location of Important Data Directory (Source of backup). DESDIR=/mybackupfolder # Destination of backup file. tar -cpzf $DESDIR/$FILENAME $SRCDIR

END

source directory: # mkdir /imp-data destination directory: # mkdir /mybackupfolder

3: Schedule task with cron jobs .# crontab -e Minutes Hours Day of Month Month Day of Week Command 0 to 59 0 to 23 1 to 31 1 to 12 0 to 6 Shell Command ----> Bsp: ein Back up jeden Montag und Samstag um 00:01 .# M H DOM M DOW CMND 01 13 * * 1,6 /bin/bash /backup.sh


setup a new UDEV rule to be applied any time your disk will be connected: (Debian) (bsp für nur video files, samsung device, model HM400LI:) /etc/udev/rules.d/50-backup.rules

.# UDEV rules to setup automatic backup upon disk insertion .# You can get the discriminant informations with the following command : .# udevinfo -a -p $(udevinfo -q path -n /dev/sda)

.# Backup - Rule for the hard disk that will backup video files KERNEL=="sd?1", ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="SAMSUNG", ATTRS{model}=="HM400LI", RUN+="/root/backup-video.sh %k"

.# Backup - You can setup rules for other hard disks here .#KERNEL=="sd?1", ACTION=="add", SUBSYSTEMS=="scsi", ATTRS{vendor}=="xxxxxxxx", ATTRS{model}=="yyyyyyyy", RUN+="/root/backup-zzzzzz.sh %k"

.# /etc/init.d/udev restart

Oldbaas commented 8 years ago

Ich habe hier noch einen Sehr-Simplen Bash Script gefunden der einfach ein komplettes Verzeichnis auf die Festplatte kopiert. Hier wird dann für jedes neue Backup ein neuer Ordner mit dem Datum des Backuptages erstellt.

!/bin/sh

quelle=/home/ //Hier wird das Verzeichnis Home für das Backup ausgewählt. ziel=/media/backup_platte/ //Das Ziel für die Daten die kopiert werden, wird hier ausgewählt. heute=$(date +%Y-%m-%d) //Der Ordner mit dem Datum wird erstellt.

rsync -avR --delete "${quelle}" "${ziel}${heute}/" --link-dest="${ziel}last/"
ln -nsf "${ziel}${heute}" "${ziel}last" //Die Datenübertragung findet hier statt.

exit 0

Wir können den Script noch verändern aber Grundsetzlich könnte das hier das Backup Problem lösen aber wir könnten dann kein User-Interface erstellen um das zu Steuern.

Oldbaas commented 8 years ago

Ich habe mich im Internet erkundigt wie man ein Bash Script überhaupt herstellt. Jetzt werde ich die einzelnen Befehle nochmal genau anschauen und mich in die Welt des Bash Scripting einführen. Die erste Test Datei für ein Backup kann jetzt erstellt werden(es fehlt mir momentan die Zeit dazu).