Good to Know Database

Shell Skript: Download German Dilbert Comic Strip (04.06.2019)


Das folgende Shell Skript lädt den aktuellen deutschen Dilbert Comic Strip von der Webseite Ingenieur.de herunter.

Erstellen Sie durch den folgenden Befehl das Skript im Verzeichnis ~/sh.

[root@centos6 ~]# vi ~/sh/get_comic_dilbert_de.sh

Fügen Sie jetzt das folgende Skript in die Datei get_comic_dilbert_de.sh ein.

###########################################################################
##                                                                       ##
##                  Download German Dilbert Comic Strip                  ##
##                                                                       ##
## Creation:    15.07.2012                                               ##
## Last Update: 04.06.2019                                               ##
##                                                                       ##
## Copyright (c) 2012-2019 by Georg Kainzbauer <http://www.gtkdb.de>     ##
##                                                                       ##
## This program is free software; you can redistribute it and/or modify  ##
## it under the terms of the GNU General Public License as published by  ##
## the Free Software Foundation; either version 2 of the License, or     ##
## (at your option) any later version.                                   ##
##                                                                       ##
###########################################################################
#!/bin/bash

# Local directory to store the comic strip
DIR=/var/www/html/comics/Dilbert_DE/

# Who will be informed in case of new comic strip is available
MAIL="georg@home.lan"

# Mail subject
SUBJECT="Neuer Dilbert Comic Strip"

# Web server URL
URL=https://www.ingenieur.de/unterhaltung/dilbert/

# URL of the comic strip
IMGURL=$(/usr/bin/wget -q ${URL} -O - 2>/dev/null | /bin/grep -i "src=\"https://www.ingenieur.de/wp-content/uploads/" | /usr/bin/head -n1 | /bin/cut -d\" -f6)

# File name of the comic strip on the web server
FILE=$(/bin/echo ${IMGURL} | /bin/cut -d/ -f8)

###################################################################
# NORMALLY THERE IS NO NEED TO CHANGE ANYTHING BELOW THIS COMMENT #
###################################################################

function log()
  {
    /bin/echo "LOG:" $1
  }

function error()
  {
    /bin/echo "ERROR:" $1
    exit 1
  }

# Check variables
if [ -z "${DIR}"  ] ; then
  error "Please specify the local comic strip directory."
fi

if [ -z "${URL}" ] ; then
  error "Please specify the web server URL."
fi

if [ -z "${IMGURL}" ] ; then
  error "Please specify the image URL."
fi

if [ -z "${FILE}" ] ; then
  error "Please specify the file name on the web server."
fi

# Create local comic strip directory if it does not exist
if [ ! -d ${DIR} ] ; then
  log "Creating local comic strip directory ${DIR}."
  /bin/mkdir -p ${DIR}
fi

# Check for new comic strip
if [ -f "${DIR}${FILE}" ] ; then
  log "No new comic strip found on the web server."
  exit 0
else
  log "Downloading new comic strip from the web server."
  /usr/bin/wget -q "${IMGURL}" -P ${DIR}

  if [ -f "${DIR}${FILE}" ] ; then
    log "Download successful."
    if [ -n "${MAIL}" ] ; then
      log "Sending new comic strip to the mailing list."
      /usr/bin/mutt -s "${SUBJECT}" -a "${DIR}${FILE}" -- ${MAIL} < /dev/null;
    fi
  else
    error "Download failed."
  fi
fi

exit 0

Ändern Sie anschließend die Zugriffsrechte der Datei.

[root@centos6 ~]# chmod 0700 ~/sh/get_comic_dilbert_de.sh

Öffnen Sie jetzt die Crontab mit dem folgenden Befehl zum Bearbeiten.

[root@centos6 ~]# crontab -e

Fügen Sie am Ende der Datei die folgende Zeile ein. Dadurch wird das Skript zu jeder vollen Stunde ausgeführt.

0 * * * * /root/sh/get_comic_dilbert_de.sh >/dev/null 2>&1


Dieser Eintrag wurde am 21.07.2019 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_3060.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2019 by Georg Kainzbauer