Good to Know Database

Shell Skript: Download English XKCD Comic Strip


Das folgende Shell Skript lädt den aktuellen englischen XKCD Comic Strip von xkcd.com herunter.

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

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

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

###########################################################################
##                                                                       ##
##                   Download English XKCD Comic Strip                   ##
##                                                                       ##
## Creation:    15.07.2012                                               ##
## Last Update: 20.10.2013                                               ##
##                                                                       ##
## Copyright (c) 2012-2013 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/XKCD_EN/

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

# Mail subject
SUBJECT="New XKCD Comic Strip"

# ID of the current comic strip
ID=$(/usr/bin/wget -q http://xkcd.com -O - 2>/dev/null | /bin/grep "Permanent link" | /bin/cut -d "/" -f4)

# Download URL of the comic strip on the web server
DLURL=$(/usr/bin/wget -q http://xkcd.com/${ID}/ -O - 2>/dev/null | /bin/grep "<img src=\"http://imgs.xkcd.com/comics/" | /bin/cut -d"\"" -f2)

# Local file name of the comic strip
FILE=$(/bin/echo ${ID})_$(/bin/echo ${DLURL} | /bin/cut -d "/" -f5)

###################################################################
# 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 "${ID}" ] ; then
  error "Please specify the comic strip id."
fi

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

if [ -z "${FILE}" ] ; then
  error "Please specify the local file name."
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 "${DLURL}" -O "${DIR}${FILE}"

  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_xkcd_en.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_xkcd_en.sh >/dev/null 2>&1


Dieser Eintrag wurde am 15.07.2012 erstellt und zuletzt am 05.04.2015 bearbeitet.

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

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer