AWS : Mount eines S3 Buckets unter Debian

Installation des benötigten Packetes auf der Debian Kiste.
apt install s3fs
Erstellen einer Passwort Datei im Home Directory
touch ~/.passwd-s3fs
echo "accessKeyId:secretAccessKey" > ~/.passwd-s3fs
Wenn mehrere Amazon S3 Buckets verwendet werden müssen kann auch der Name des Buckets vor den Zugangsdaten hinzugefügt werden.
echo "bucketName:accessKeyId:secretAccessKey" > ~/.passwd-s3fs
Da hier sensible Zugangsdaten in der Datei stehen müssen die Rechte auf 600 geändert werden !
chmod 600 ~/.passwd-s3fs
Wenn alles richtig ist kann das Amazon S3 Buckets gemountet werden
s3fs [BUCKET-NAME] [MOUNT-POINT]
Der Eintrag für /etc/fstab sieht dann so aus, hier ist debug noch aktiv. Das sollte für einen Betrieb in der Produktion deaktiviert werden.
# MOUNT S3 MIT DEBUG
[BUCKET-NAME] [MOUNTPOINT] fuse.s3fs _netdev,allow_other,dbglevel=dbg,curldbg 0 0
# MOUNT S3 OHNE DEBUG
[BUCKET-NAME] [MOUNTPOINT] fuse.s3fs _netdev,allow_other 0 0

Quellen :
https://cloud.netapp.com/blog/amazon-s3-as-a-file-system
https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon

Automatisch Backups von Linux Server löschen

So hier ist mal ein kleines Bash Skript um automatisiert Backups zu löschen.

Es müssen natürlich alle Variablen angepasst werden, diese sollte ja selbsterklärend sein.


#!/bin/bash

# Allgemeine Variablen fr Logfiles
datum=`date +%Y_%0m_%0e`

ablauf_log="/share/log/ablauf-$datum.log"
error_log="/share/log/error-$datum.log"

# Maximales alter des Backupfiles in Tagen
alter="21"

echo Bereinigen wird gestartet $datum >>$ablauf_log
echo Bereinigen wird gestartet
echo ------------------------------------------------ >>$ablauf_log
echo ------------------------------------------------

# ---------------------------------- GESAMT BACKUP ROUTINE
ordner="/share/backup/sbs"
echo Variablen
echo Ordner wird auf $ordner gesetzt
echo Alter wird auf $alter gesetzt
echo
echo ------- $ordner -- Komplettsicherung aelter als $alter Tage >>$ablauf_log
echo Dateien in $ordner werden auf Alter ueberprueft  - max. $alter Tage

find $ordner -mtime +$alter -exec echo {} \;
find $ordner -mtime +$alter -exec rm {} \;

echo ------------------------------------------------

# ---------------------------------- WEBSERVER BACKUP ROUTINE
alter="15" # fuer webserve und lexware nur 15 Tage
ordner="/share/backup/webserver"

echo Neu setzen der Variablen
echo Ordner wird auf $ordner gesetzt
echo Alter wird auf $alter gesetzt
echo

echo ------- $ordner -- Webserversicherung aelter als $alter Tage >>$ablauf_log
echo Dateien in $ordner werden auf Alter ueberprueft  - max. $alter Tage

find $ordner -mtime +$alter -exec echo {} \;
find $ordner -mtime +$alter -exec rm {} \;

echo ------------------------------------------------

# ---------------------------------- LEXWARE BACKUP ROUTINE
# - Alter ist bereits definiert
# ---------------------------------------------------------
ordner="/share/backup/lexware"

echo Neu setzen der Variablen
echo Ordner wird auf $ordner gesetzt
echo Alter wird auf $alter gesetzt
echo

echo ------- $ordner -- Lexwaresicherung aelter als $alter Tage >>$ablauf_log
echo Dateien in $ordner werden auf Alter ueberprueft  - max. $alter Tage

find $ordner -mtime +$alter -exec echo {} \;
find $ordner -mtime +$alter -exec rm {} \;

echo ------------------------------------------------
echo
echo ------------------------------------------------ >>$ablauf_log
echo Vorgang abgeschlossen >>$ablauf_log


Getestet mit SUSE / DEBIAN / UBUNTU

Automatisches Backup erstellen - Linux

Was natürlich nicht fehlen darf, ist ein Skript um Backups zu erstellen.

Hier wird z.B. ein lampp Server gesichert, es kann natürlich alles damit gesichert werden, dann muss nur das Skript angepasst werden ;-)

Ist vielleicht nicht immer die sauberste Methode aber sie funktioniert


#!/bin/bash
#
#
# Sichert den eingestellten Ordner
#
# -- Variablen
#
# Ordner und Zieldatei
#
Ordner=/opt/lampp/htdocs
Target=/share/backup/webserver
tmp_temp=/opt/lampp/htdocs/xtc/templates_c/*.php
tmp_cach=/opt/lampp/htdocs/xtc/cache/*.html
Error=/share/log/`date +%Y_%0m_%0e`_Error_WebSRV.log
Ablauf=/share/log/`date +%Y_%0m_%0e`_Ablauf_WebSRV.log
# Stufe der Komprimierung (0-9)
Compression=9
#
# Name der Backup Datei
#
NameZIP=`date +%Y_%0m_%0e`_WEBSRV
#
# Startzeit ermitteln
#
StrTime=`date +%R`
#
#
# wenn kein Logfile mitgeschrieben werden soll
# umleiten in //dev/null
#
echo Backup wird gestartet $StrTime
echo LAMPP wird beendet

/opt/lampp/lampp stop >>$Ablauf 2>>$Error

echo Daten werden gesammelt und gezippt
zip -r -$Compression $Target/$NameZIP.zip $Ordner >>//dev/null 2>>$Error

echo temp Dateien werden entfernt
echo
rm $tmp_temp >>$Ablauf 2>>$Error
rm $tmp_cach >>$Ablauf 2>>$Error

echo LAMPP wird gestartet
/opt/lampp/lampp start >>$Ablauf 2>>$Error

echo Rechte auf Backupdatei werden geaendert
chmod 777 $Target/$NameZIP.zip

echo Backup abgeschlossen



Getestet mit SUSE / DEBIAN / UBUNTU

Cronjob | Linux

Cronjobs sind unersätzlich auf einem Linux Server, und sind das gegenstück zu geplanten Tasks bei Windows Servern.

Allerdings ist die Syntax bei einem Linux Server um einiges schwerer zu erlernen als das Microsoft Gegenstück.

Die eingerichteten Cronjobs kann man mit dem Befehl

crontab -l


ansehen. Meine Empfehlung an euch ist alle Jobs in einer Datei einzupflegen und diese dann mit

crontab eureDatei (z.B. crontab jobs.cron)


scharf zu schalten.

Der Aufbau eines Cronjobs besteht aus sechs Feldern.

1.Minute (0-59)
2.Stunde (0-23)
3.Tag im Monat (1-31)
4.Monat im Jahr (1-12)
5.Tag der Woche (0-6 mit 0=Sonntag)
6.Was soll ausgeführt werden (z.B. Skript)


Möchte man jetzt das jeden Montag um 5.00 Uhr das Skript Backup.sh ausgeführt wird sieht das so aus.

0 5 \* \* 1 /Skripte/Backup.sh


soll das Skript am 10ten und am 20ten jeden Monats ausgeführt werden sieht das so aus.

0 5 10,20 \* \* /Skripte/Backup.sh


will man das das Skript alle 2 Minuten ausgeführt wird muss man schon etwas wühlen um den genauen Syntax zu erfahren. Hier ist ein Beispiel.

-*/2 \* \* \* \* /Skripte/Backup.sh

Hier noch zwei Seiten die sich mit dem Thema etwas genauer befassen :

http://www.tech-geeks.org/contrib/mdrone/cron&crontab-howto.htm
http://www.sequenz.ch/archive/2003/12/07/crontab-beispiel.html

Und nun wünsch ich euch viel Spaß beim probieren
“Das Alzheimer-Gesetz der Programmierung: Wenn du einen von dir vor zwei Wochen geschriebenen Code ansiehst, kommt es dir vor als hättest du ihn noch nie gesehen.”
Dan Hurvitz – Software-Entwickler