Tag Archives: cronjob

Binlayer.com Einnahmen Script

Binlayer.com Einnahmen Script

sed Script für binlayer.com Einnahmen

Auf einen anderen Internet Seite hab ich binlayer.com Werbung geschaltet. Das ist ein Anbieter für Popup Werbung mit einer angemessenen Vergütung

Ich wollte eine tägliche Meldung haben wie hoch die derzeitigen Einnahmen sind und fand einen weg das umzusetzen. Den ich euch natürlich nicht vorenthalten will.

Hier den ganzen Artikel lesen

WordPress Backup mittels rsync und ssh

WordPress Backup mittels rsync und ssh

WordPress Backup mit rsync über ssh

Gabelschlüssel am Hackenich hatte vor einiger zeit mal einen Artikel über das Backup-Erstellen geschrieben. Nachteil dieser Methode von damals ist sicher der enorme Speicherbedarf, der dabei entsteht. Hatte mir innerhalb weniger Wochen die komplette Platte zugeknallt. Da ist doch eine Anpassung angesagt gewesen.

Heute war es dann so weit und ich setzte mich daran ein Backupsystem zu erstellen das über rsync läuft und nicht so viel Datenmenge kreiert.

rsync erste Wahl beim Backup erstellen

rsync ist ein Programm, um Dateien zwischen lokalen oder über das Netzwerk erreichbaren Pfaden abzugleichen. Dabei werden zunächst die Größe und die Erstellungszeit der Dateien in Quelle und Ziel verglichen, so dass nur die Dateien behandelt werden müssen, bei denen es Änderungen gegeben hat. Sind Quelle und Ziel lokale Pfade, werden die betroffenen Dateien normal kopiert. Wenn auf Quelle oder Ziel aber per SSH oder über einen speziellen rsync-daemon zugegriffen wird, nutzt rsync zusätzlichen noch einen speziellen Delta-Transfer-Algorithmus, so dass nur die geänderten Teile der Dateien über das Netzwerk transportiert werden müssen.

Quelle: http://wiki.ubuntuusers.de/Startseite

Also rsync passt wie die Faust aufs Auge wenn es darum geht Sicherungen zu erstellen.

Wenn man also ein Verzeichnis, mittels SSH auf einen andern Server, kopieren will. Schaut der Befehl so aus:

# rsync -avze ssh /zu/kopierendes/verzeichnis benutzer@entfernterserver.de:/ziel/auf/server

Als bequemer Mensch will ich Automatismus

Genau, jeden Tag einen Cronjob um Mitternacht plus email was alles getan wurde.

SSH einrichten

Zuerst müssen wir also eine Authentifizierung über Public-Keys erstellen damit wir kein Passwort brauchen.

# ssh-keygen -t rsa

erstellt ein Schlüsselpaar. Bei dem wir die Passphrase leer lassen. Dann müssen wir den Schlüssel übertragen.

# ssh-copy-id -i ~/.ssh/id_rsa.pub benutzer@entfernterserver.de

Script erstellen

Jetzt brauchen wir noch ein Script, da es mir hier hauptsächlich darum geht ein WordPress Backup zu erstellen muss man auch die sql Tabelle mit sichern.

Starten des Editors

# nano /root/rsyncer

Folgenden Script eintragen. Natürlich an die eigenen Gegebenheiten anpassen.

#!/bin/sh

#mysql datenbanken exporieren. 
 mysqldump DATENBANKNAME -u MYSQLBENUTZERNAME -pPASSWORT > /var/www/wordpressbackup.sql

#rsync des Webverzeichnisses inc. logdatei erstellen
rsync -avze ssh /var/www/ benutzer@entfernterserver.de:/ziel/auf/server > /root/rsyncausgabe

#logdatei mailen
mail -s "rsync Ausgabe" meine@mailadresse.de < /root/rsyncausgabe

Erklärung:
Zuerst wird die mysql Tabelle in das zu sichernde Verzeichnis exportiert.
Dann wird alles übertragen und die Ausgabe in die Datei rsyncausgabe geschrieben. Diese wird wiederum als Mail an mich versendet.

Jetzt nur noch Benutzer und Rechte anpassen und das Script ausführbar machen

# chown root:root /root/rsyncer
# chmod 770 /root/rsyncer

Täglichen cronjob erstellen

Nun ist das Script erstellt und es kann ein cronjob eingerichtet werden. Wer nicht den vi Editor für crontab -e benutzen will, für den hab ich hier eine Anleitung geschrieben wie man auf den nano Editor wechselt.

Als root ausführen:

# crontab -e

und folgendes in die Tabelle um "@daily  /root/rsyncer" erweitern

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

@daily                  /root/rsyncer

Damit wird jeden Tag, Punkt Mitternacht ein Backup unseres WordPress oder anderes erstellt.

Einen anderen Editor für Crontab -e auswählen

Einen anderen Editor für Crontab -e auswählen
Einen anderen Editor für Crontab -e auswählen

crontab Ich mag den VI-Editor nicht, zu umständlich, zu viele Funktionen zu viele Tastenkürzel. Ich bin ein nano Fan. Klein, leicht, übersichtlich. Genau was ich will. Bei Debian und vielen anderen Distributionen sind die Editoren für den Cronjob schon voreingestellt. Aber man kann sie leicht ändern:

export EDITOR=/usr/bin/vi
export EDITOR=/usr/bin/vim
export EDITOR=/usr/bin/nano

oder einen anderen bevorzugten Editor.
Mit

update-alternatives --config editor

bekommt man sogar eine Liste zum auswählen.
Ich mag die export EDITOR/usr/bin/... Methode lieber. Getreu dem KISS-Prinzip.

Keep it simple, stupid.

(„Halte es einfach, Dummkopf!“)