Alle URL’s einer Website auslesen

22. August 2012

Ich wollte alle Links einer Website auslesen. Hierbei bin ich auf die Anleitung „URL-Listen mit wget“ gestoßen.

wget -r –spider -l3 http://www.example.de  -o urlliste.txt

funktionierte prima, die nachträgliche Bereinigung lief jedoch auf einen Fehler, da grep den regulären Ausdruck nicht kannte:

cat urlliste.txt | grep -P „–d{4}“ | cut -d “ “ -f 4 | sort | uniq > urlliste_endgueltig.txt

Statt diesem Aufruf habe ich es mit egrep probiert und siehe da, es funktioniert:

cat urlliste.txt | egrep -o „http:.*“ | sort | uniq > urlliste_endgueltig.txt

Das Ergebnis ist eine Liste aller Hyperlinks auf der durchsuchten Website.

 


BASH: Alle PDF-Dateien als Mail aus der Shell senden

3. Februar 2011

Dieses Script sendet alle in einem definierten Ordner befindlichen PDF Dateien als E-Mail-Attachment an eine definierte Adresse.

#### Wenn der Ordner nicht leer ist, werden alle PDF-Dateien als E-Mail Attachment versendet ####
cd /srv/smb/ORDNERNAME
if [ 12 -gt 2 ]
then
ls *.pdf > attach.txt
for var in $(< attach.txt); do
mutt -s "Scanner - $var" -a $var empfaenger@klinikum-aschaffenburg.de < /PFAD zum/body.txt
rm $var
done
rm /srv/smb/ORDNERNAME/*.*
fi

Getestet unter Debian Lenny (MUTT muss installiert sein)


MySQL-Backup

9. Dezember 2010

#!/bin/bash

PW=
MYSQLDBDIR=/var/lib/mysql
BACKUPDIR=/home/backups/mysql
mkdir -p ${BACKUPDIR}

cd ${MYSQLDBDIR}
for db in `find * -type d -exec basename {} \;`; do
echo mysqldump ${db}
mysqldump --all --complete-insert --extended-insert=FALSE --add-drop-table --databases --flush-logs --lock-tables --quick --comments=0 \
--user=root --password=${PW} --host=localhost ${db} > ${BACKUPDIR}/${db}.new.sql
if [ -f ${BACKUPDIR}/${db}.sql ]; then
# echo diff -q ${BACKUPDIR}/${db}.sql ${BACKUPDIR}/${db}.new.sql
diff -q ${BACKUPDIR}/${db}.sql ${BACKUPDIR}/${db}.new.sql > /dev/null 2>&1
result=$?
if [ $result -eq 0 ]; then
# echo rm ${BACKUPDIR}/${db}.new.sql
rm ${BACKUPDIR}/${db}.new.sql
elif [ $result -eq 1 ]; then
echo mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
fi
else
echo mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
mv ${BACKUPDIR}/${db}.new.sql ${BACKUPDIR}/${db}.sql
fi
done

  • Die Variable MYSQLDIR auf das MYSQL-Datenbankverzeichnis konfigurieren
  • Die Variable BACKUPDIR auf das Backup-Verzeichnis konfigurieren
  • Die Variable PW mit dem root-Passwort für MySQL versehen.
  • Bei der Ausführung liest das Script alle Ordner (= Datenbanknamen) innerhalb des MySQL-Datenbankverzeichnisses ein.
  • Mit diesen Informationen wird ein mysqldump ausgeführt, welcher alle Datenbanken in einzelnen DUMP-Dateien im Backup-Verzeichnis sichert.
  • Script nach /etc/cron.daily/backup-mysql speichern und das automatische Backup ist fertig.

  • Zeitzone in Debian einrichten

    9. Dezember 2010

    Bei der Installation habe ich nicht so besonders darauf geachtet, welche Zeitzone meine System haben. Nach und nach nervt es aber ziemlich, dass alle Rechner eine andere Zeit verwenden. Also ist nachträglich Zeitzone und Uhrzeit einzustellen.

    Zeitzone:

    tzconfig

    Nach diesem Kommando kann man auswählen, welche Zeitzone man gern hätte. Das Ergebnis steht in /etc/localtime
    Anschließend ist noch die Zeit mit einem Zeitserver zu synchronisieren. Ich verwende dazu rdate.

    apt-get install rdate

    Anschließend wird die Zeit von einem öffentlichen Zeitserver geholt:

    rdate ptbtime1.ptb.de


    Samba User anlegen – BASH

    9. Dezember 2010


    #!/bin/bash
    # Anlegen eines neuen Samba-Benutzers
    # Version 1.0
    ####################################################
    ####################################################

    echo -n "Geben Sie den neuen Benutzernamen ein:"
    read -e USER
    useradd -m $USER
    passwd $USER
    smbpasswd -a $USER
    mkdir /srv/smb/$USER
    chown nobody /srv/smb/$USER -R
    chmod 777 /srv/smb/$USER -R
    echo "" >> /etc/samba/smb.conf
    echo "### Freigabe fuer User: $USER ###" >> /etc/samba/smb.conf
    echo "" >> /etc/samba/smb.conf
    echo [$USER] >> /etc/samba/smb.conf
    echo writeable = yes >> /etc/samba/smb.conf
    echo path = /srv/smb/$USER >> /etc/samba/smb.conf
    echo force directory mode = 777 >> /etc/samba/smb.conf
    echo force create mode = 777 >> /etc/samba/smb.conf
    echo revalidate = yes >> /etc/samba/smb.conf
    echo force user = root >> /etc/samba/smb.conf
    echo comment = Samba-Share $USER >> /etc/samba/smb.conf
    echo valid users = $USER >> /etc/samba/smb.conf
    echo public = yes >> /etc/samba/smb.conf
    echo create mode = 777 >> /etc/samba/smb.conf
    echo directory mode = 777 >> /etc/samba/smb.conf
    /etc/init.d/samba reload
    exit 0


    NCPMOUNT – der Schlüssel zu Novell Netware

    22. September 2010

    Für mich stellte sich die Frage, wie ich Dateien von einem Linux-Server auf einen Novell-Netware Server speichern kann. Die Lösung ist relativ einfach: NCPMOUNT

    ncpmount -S SERVER -A DNS-ALIAS-FQDN -U USER -V VOLUME -P PASSWORD /MOUNTPOINT

    Hierzu muss lediglich das Paket ncpfs installiert sein.

    apt-get install ncpfs


    IMAP-Postfächer synchronisieren

    22. September 2010
    Auf der Suche nach einem schnellen Synchronisationstool für IMAP-Postfächer bin ich auf „imapsync“ gestoßen. Ein komfortables und schnelles Tool wenn es um den Umzug von IMAP-Konten geht. Hierbei gilt wohl zu beachten, dass das Tool nicht unbedingt geeignet ist, wenn die User zeitgleich auf beiden Servern arbeiten.
    Die Installation ging auf dem Debian System ziemlich schnell von der Hand:

    apt-get install imapsync

    Danach die beiden Server und Postfächer miteinander verbinden – die Passwörter der Postfächer waren mir bekannt, wobei der „root“-Benutzer wahrscheinlich auch gereicht hätte:

    imapsync --host1 IMAP-SERVER-ALT --user1 IMAP-USER-ALT --password1IMAP-PASS-ALT --host2  IMAP-SERVER-NEU --user2 IMAP-USER-NEU --password2 IMAP-PASS-NEU


    Kangoo´s Blog

    Just another WordPress.com site