
| bin | Zweck | |
|---|---|---|
| bash | Befehle / Automatisierung | |
| ssh | Serverzugang | |
| rsync | Synchronisation | |
| scp | Remote-Kopien | |
| zip | Komprimierung (Archive) | |
| gzip | Komprimierung (Dateien) | |
| mysqldump | Datenbank-Ausgabe | |
| bup | inkrementelle Backups | |
| crontab | Automatisierung | |
| curl | URL Requests |
| bin | Zweck | seit |
|---|---|---|
| bash | Befehle / Automatisierung | 1989 (1971) |
| ssh | Serverzugang | 1995 |
| rsync | Synchronisation | 1998 |
| scp | Remote-Kopien | 1995 (1982) |
| zip | Komprimierung (Archive) | 1989 |
| gzip | Komprimierung (Dateien) | 1992 (1983) |
| mysqldump | Datenbank-Ausgabe | 1995 |
| bup | inkrementelle Backups | 2010 |
| crontab | Automatisierung | 1970er |
| curl | URL Requests | 1997 (1995) |
set -euxexec() in PHP, Node, Perl …~/.ssh ssh user@host 'foo.bash'
ssh://… nutzen-i für Schlüsselpfad-o StrictHostKeyChecking=noCredentials auslagern:
mysqldump --defaults-extra-file=/path/to/extra.cnf
extra.cnf
[mysqldump]
user=name
password="password"
Dateiupdates:
zip --update [source] [dest].zip
… inkl. Löschungen (seit 2011):
zip --filesync [source] [dest].zip
| Komponente | |
|---|---|
| 1. System, Dependencies, Konfiguration, Themes | |
| 2. Content = Datenbank | |
| 3. Uploads = Files |
| Komponente | via |
|---|---|
| 1. System, Dependencies, Konfiguration, Themes | Git |
| 2. Content = Datenbank | ?? |
| 3. Uploads = Files | ?? |
zip -FS, Time Machine, bup2018-05-01-14h66)01…12, 01…52, 001…356)#! /bin/bash
set -eu
day=$(date "+%j")
filename="hostdb-day${day}.sql.gz"
remotedir="/www/var/project/db-dumps"
ssh -o StrictHostKeyChecking=no user@host.com 'mysqldump --defaults-extra-file=/path/to/extra.cnf dbname | gzip > '"${remotedir}/${filename}"
…
…
localdir="../www-private/db"
mkdir -p "${localdir}/archive"
scp -q user@host.com:/"${remotedir}/${filename}" "${localdir}/archive"
ln -f "${localdir}/archive/${filename}" "${localdir}/latest.sql.gz"
echo "${localdir}/archive/${filename}"
… und nicht vergessen:
Fragen?
© Januar 2019