FLEX – wird beim Start abgefragt
Script-Konfiguration
z.B. /home/mwalz/Downloads/sync/
→ Script fragt beim Start
→ Script fragt beim Start
→ Script fragt beim Start
Wird als ~/scriptname.sh gespeichert
Empfohlen für Prüfung: ASK
Wird vor dem Sync auf Existenz geprüft
Ausführen
Ausführbar machen & starten
chmod +x ~/sync.sh && ~/sync.sh
Mit Log-Ausgabe
~/sync.sh 2>&1 | tee ~/sync.log
Automatisieren (cron)
Crontab öffnen
crontab -e
Jede Stunde
0 * * * * ~/sync.sh >> ~/sync.log 2>&1
Täglich 02:00
0 2 * * * ~/sync.sh >> ~/sync.log 2>&1
Alle 15 Minuten
*/15 * * * * ~/sync.sh >> ~/sync.log 2>&1
Aufgabe: Script mit 2 Parametern (Datei + neuer Bucket + Webzugriff)
Script-Inhalt (upload-public.sh)
#!/bin/bash
set -e
FILE_PATH="$1"
BUCKET_NAME="$2"
if [ -z "$FILE_PATH" ] || [ -z "$BUCKET_NAME" ]; then
echo "Usage: $0 /pfad/zur/datei BUCKET-NAME"
exit 1
fi
if [ ! -f "$FILE_PATH" ]; then
echo "Datei nicht gefunden: $FILE_PATH"
exit 1
fi
FILE_NAME="$(basename "$FILE_PATH")"
OBJECT_URL="https://$BUCKET_NAME.s3.amazonaws.com/$FILE_NAME"
aws s3 mb "s3://$BUCKET_NAME"
aws s3 cp "$FILE_PATH" "s3://$BUCKET_NAME/$FILE_NAME"
cat > policy-public-single.json <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadSingleObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::$BUCKET_NAME/$FILE_NAME"
}
]
}
EOF
aws s3api put-bucket-policy --bucket "$BUCKET_NAME" --policy file://policy-public-single.json
echo "Fertig. Oeffentliche URL: $OBJECT_URL"
Script speichern
nano ~/upload-public.sh
Ausführbar machen
chmod +x ~/upload-public.sh
Aufruf mit 2 Parametern
~/upload-public.sh ./daten.json mein-neuer-bucket-12345
⚠ Der Bucket-Name muss global eindeutig sein. Wenn die URL nicht geht, zuerst "Block public access" des Buckets prüfen.
Generator: Datei hochladen + öffentliche URL ausgeben
Parameter für upload-public.sh
DRAG&DROP: Datei auf Script ziehen = wird als $1 genutzt
PARAM: Bucket wird als Script-Parameter übergeben
Leer = automatisch aus AWS CLI (aws configure get region)
Starten
chmod +x ~/upload-public.sh && ~/upload-public.sh ./datei.json mein-bucket-12345