IPKG: Unterschied zwischen den Versionen

Aus
Zeile 208: Zeile 208:
'''Startup Script rsyncd'''
'''Startup Script rsyncd'''


Leider scheint das Script noch einen Bug zu haben, daher muss es noch mal besser getestet werden.
Das nachfolgende Script sollte noch einmal besser getestet werden. Da mit DSM3.0 die Diskstation einen eingenen rsynd anbietet, ist das Script vollständigkeitshalber hier abgelegt.


#!/bin/sh
#!/bin/sh
#
#
# Startup and Shutdown script for rsyncd
# Startup and Shutdown script for rsyncd
#
#
# Start
# Start
start() {
start() {
   [ -e /opt/etc/default/rsync ] && . /opt/etc/default/rsync
   [ -e /opt/etc/default/rsync ] && . /opt/etc/default/rsync


Zeile 222: Zeile 222:
     echo "Optware startup rsyncd."
     echo "Optware startup rsyncd."
   fi
   fi
}
}
#
#
# Stop
# Stop
stop() {
stop() {
   if [ -f /var/run/rsyncd.pid ] ; then
   if [ -f /var/run/rsyncd.pid ] ; then
     kill `cat /var/run/rsyncd.pid`
     kill `cat /var/run/rsyncd.pid`
Zeile 232: Zeile 232:
   fi
   fi
   rm -f /var/run/rsyncd.pid
   rm -f /var/run/rsyncd.pid
}
}
#
#
stop
stop
#
#
start
start
#
#
case "$1" in
case "$1" in
         start)
         start)
                 start
                 start
Zeile 254: Zeile 254:
                 exit 1
                 exit 1
                 ;;
                 ;;
esac
esac
#                                                                                                                                                                                 
#                                                                                                                                                                                 
# End
# End


==Backup Script Optware / IPKG Installation==
==Backup Script Optware / IPKG Installation==

Version vom 21. November 2010, 10:04 Uhr

Einleitung

Um die Installation von zusätzlicher Software zu vereinfachen, verwendet man das Paketverwaltungssystem IPKG (Itsy Package Management System). IPKG verwendet dabei bereits prozessorspezifische Programmpakete, so dass bei der Installation zusätzlicher Software nicht mehr auf die Kompatibilität zum verwendeten Prozessor geachtet werden muss. IPKG ist nicht Bestandteil der Synology-Firmware und muss zunächst selbst installiert werden.


Vorbereitung

Die Installation von IPKG muss auf den vorhandenen Prozessortyp abgestimmt sein. Welchen Prozessortyp besitzt mein System?

Neue, jedoch noch ungetestete Adressen gibt es hier: http://www.synology-forum.de/showthread.html?p=106324

Installation

  1. Mit SSH/Telnet !als root, nicht als admin! auf der Synology Station einloggen. Das Passwort ist das gleiche wie für den user admin
  2. Ins Verzeichnis public wechseln (wenn nicht vorhanden, muss das Verzeichnis erstellt werden)
    cd /volume1/public
  3. Die prozessorspezifische Datei mit wget herunterladen - Beispiel:
    wget http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/syno-x07-bootstrap_1.2-7_arm.xsh
  4. Das .xsh Skript starten - Beispiel:
    sh syno-x07-bootstrap_1.2-7_arm.xsh
  5. Herunterladen des aktuellen Paketverzeichnisses mit
    ipkg update
  6. Neustart des Systems

Die .xsh Datei kann jetzt aus dem Verzeichnis public gelöscht werden.

Weitergehende Installation IPKG

Leider hat die Originale IPKG Installation ein paar Nachteile. Vor allem kann es vorkommen, dass die DS nicht mehr korrekt heruntergefahren wird, wenn man nicht noch ein paar Dinge anpasst, welche nachfolgend beschrieben werden.

  • Altes Startup Script anpassen

Im originalen IPKG Startup Script /etc/rc.local werden die Optware Startup Scripte aufgerufen. Bevor man ein neues Startup Script etablieren kann, muss der alte Eintrag des IPKG Pakets entfernt oder wenigstens auskommentiert werden. Der entsprechende Eintrag könnte nach der Änderung so aussehen:

# Optware setup
#[ -x /etc/rc.optware ] && /etc/rc.optware start
  • Mount Bind entfernen

Nach dem entfernen des Originalen Startup Scripts, wird /opt nicht mehr per mount bind eingebunden. Das ist auch gut so, da man ohne Probleme einen Symbolischen Link verwenden kann.

Umount eines ggf. noch gemounteten /opt

umount /opt

Falls es beim umount zu Problemen kommen sollte, weil noch Dienste der Optware laufen, müssen diese vorher beendet werden. Danach klappt es auch mit dem umount. Um den Symbolischen Link zu setzen wird folgendermaßen vorgegangen:

rmdir /opt
ln -s /volume1/@optware /opt

Falls ein User schwierigkeiten mit dem entfernen des Directories /opt haben sollte, weil er nicht weiss, wie die Prozesse beendet werden können, kann an dieser Stelle ein Reboot der DS helfen. Da die Optware Prozesse zu diese Zeitpunkt noch nicht sauber gestoppt werden, ist es allerdings möglich, dass die DS beim reboot hängen bleibt und von Hand ausgeschaltet werden muss. Einfach nicht nervöss werden und der DS ein paar Minuten Zeit geben, die Filesystem Caches auf die Platte zu schreiben. Danach beherzt abschalten und wieder hochfahren lassen. Nach dem neustart laufen keine Optware Prozesse mehr und das Verzeichnis /opt kann wie oben beschrieben entfernt und der Link kann angelegt werden.

  • Neues Seperates Startup Script für Optware

Ein neues Startup Script sorgt dafür, dass die Optware Scripte doch wieder ausgeführt werden, diesmal sorgt aber der DS Startup und Shutdown Prozess dafür, dass auch jeweils die "start" und ganz wichtig die "stop" Scripte ausgeführt werden. Es sollte dabei darauf geachtet werden, dass die Originalen IPKG Optware Startup Scripte nicht unbedingt gut für Start/Stop betrieb geeignet sind und daher sollte vor deren verwendung noch einmal sichergestellt werden, dass diese Scripts ordentlich mittels start und stop gesteuert werden können, ansonsten muss man vor einem sauberen Shutdown die entsprechenden Dienste von Hand per "kill" beenden. Wenn alle Scripte sauber mittels "start" und "stop" Parameter funktionieren, kann die Diskstation die IPKG Optware Dienste und selbstdefinierte Dienste sauber hoch und runter fahren.

Nicht verschwiegen werden soll, dass das neue Optware Startup Script die Optware Dienste erst gegen Ende des Startup Prozesses startet und nicht wie das Alte Script, ganz am Anfang. Dies dürfte aber keinen Nachteil darstellen, die Vorteile überwiegen eindeutig.

Das neu Optware Startup Script sollte unter /usr/local/etc/rc.d/optware.sh abgelegt werden und folgendermaßen aussehen.

#!/bin/sh
#
# Optware setup
# Alternatives Optware Startup und Shutdown Script /usr/local/etc/rc.d/optware.sh
#
case $1 in
start)
       for i in /opt/etc/init.d/S??* ;do
#
               # Ignore dangling symlinks (if any).
               [ ! -f "$i" ] && continue
#
               case "$i" in
                  *.sh)
                       # Source shell script for speed.
                       (
                               trap - INT QUIT TSTP
                               set start
                               . $i
                       )
                       ;;
                  *)
                       # No sh extension, so fork subprocess.
                       $i start
                       ;;
               esac
       done
       ;;
#
stop)
#
       for i in /opt/etc/init.d/S??* ;do
#
               # Ignore dangling symlinks (if any).
               [ ! -f "$i" ] && continue
#
               case "$i" in
                  *.sh)
                       # Source shell script for speed.
                       (
                               trap - INT QUIT TSTP
                               set stop
                              . $i
                       )
                       ;;
                  *)
                       # No sh extension, so fork subprocess.
                       $i stop                       ;;
               esac
         done
         ;;
#
*)
         echo "Usage: $0 [start|stop]"
         ;;
esac
# End


Fertig zum Testen. Wenn man alles richtig gemacht hat, werden die Optware Dienste beim Starten ausgeführt und beim Herunterfahren sauber beendet. Kein Hängenbleiben der DS beim Reboot mehr.

Alternative IPKG Startup Scripts

Wie bereits geschrieben, sind die Originalen Startup Scripts des IPKG Optware nicht gerade das gelbe von Ei. Die Scripts eignen sich gerade mal dazu die Dienste zu starten, aber für das herunterfahren sind die Scripts einfach nicht geeignet. Daher sind hier alternative Start/Stop Scripts abgelegt und jeder, der seine DS erweitert ist aufgerufen, weitere Scripts, welche ein sauberes Starten und stoppen ermöglichen, hier abzulegen.

Startup Script atd

Das originale Startup Script wurde um start/stop/restart Prozeduren erweitert.

#!/bin/sh
#
# Startup script for atd
#
# Stop myself if running
PIDFILE=/var/run/atd.pid
#
start() {
 /opt/sbin/atd &
 echo "Optware startup atd"
}
#
stop() {
 [ -f ${PIDFILE} ] && kill `cat ${PIDFILE}`
 echo "Optware shutdown atd"
}
#
case "$1" in
       start)
               start
       ;;
       stop)
               stop
       ;;
       restart)
               stop
               sleep 1
               start
       ;;
       *)
               echo "Usage: $0 (start|stop|restart)"
               exit 1
       ;;
esac
# End


Startup Script fetchmail

Das Script ist etwas angepasst, damit für jeden User ein eigenes fetchmail aufgerufen werden kann. Das Logfile hat derzeit den Nachteil, dass es für alle User beschreibbar und lesbar sein muss. Da ist noch ein kleines TODO, aber fürs erste ist das Script besser, wie das Originale.

#!/bin/sh
PROG=fetchmail
#ARGS="-d 300 -t 60 -a -e 50 --auth password -f /opt/etc/fetchmailrc -L /opt/var/log/fetchmail"
ARGS="-d 910 -t 60 -a -e 50 --auth password -L /opt/var/log/fetchmail"
#
if [ -z "$1" ] ; then
   case `echo "$0" | /bin/sed 's/^.*\/\(.*\)/\1/g'` in
       S??*) rc="start" ;;
       K??*) rc="stop" ;;
       *) rc="usage" ;;
   esac
else
   rc="$1"
fi
#
case "$rc" in
   start)
       echo "starting service $PROG"
       for user in `cat /etc/passwd | awk -F':' '{ print $1}'`; do
         USERHOME=`cat /etc/passwd | grep "^${user}" | awk -F':' '{print $6}'`
         if [ -f ${USERHOME}/.fetchmailrc ]; then
           su - ${user} -c "$PROG $ARGS" 2>&1
         fi
       done
       exit
#
       ;;
   stop)
       echo "stopping service $PROG"
#
       if [ -n "`pidof $PROG`" ]; then
           killall $PROG
       fi
       ;;
   restart)
       "$0" stop
       sleep 1
       "$0" start
       ;;
   *)
       echo "Usage: $0 (start|stop|restart|usage)"
       ;;
esac


Startup Script rsyncd

Das nachfolgende Script sollte noch einmal besser getestet werden. Da mit DSM3.0 die Diskstation einen eingenen rsynd anbietet, ist das Script vollständigkeitshalber hier abgelegt.

#!/bin/sh
#
# Startup and Shutdown script for rsyncd
#
# Start
start() {
 [ -e /opt/etc/default/rsync ] && . /opt/etc/default/rsync
 if ${RSYNC_ENABLE} ; then
   /opt/bin/rsync --daemon ${RSYNC_OPTS}
   echo "Optware startup rsyncd."
 fi
}
#
# Stop
stop() {
 if [ -f /var/run/rsyncd.pid ] ; then
   kill `cat /var/run/rsyncd.pid`
 else
   killall rsync 2>/dev/null
 fi
 rm -f /var/run/rsyncd.pid
}
#
stop
#
start
#
case "$1" in
       start)
               start
               ;;
       stop)
               stop
               ;;
       restart)
               stop
               sleep 1
               start
               ;;
       *)
               echo "Usage: $0 (start|stop|restart)"
               exit 1
               ;;
esac
#                                                                                                                                                                                
# End

Backup Script Optware / IPKG Installation

Das nachfolgende kleine Backup Script soll als Beispiel dienen, wie die Optware Installation gesichert werden kann.

#!/bin/sh
#
# Script zum Backup der Optware incl. der Einstellungen
#
OPTWARE="/volume1/@optware /etc/rc.optware /etc/rc.local /usr/local/etc/rc.d/optware.sh"
BACKUPDIR="/volume1/homes/janus"
#
BACKUPFILE=optware-backup-`date +%a`.tar.bz2
tar -cjf ${BACKUPDIR}/${BACKUPFILE} ${OPTWARE}
#
# End

externe Links, Mirrors

Mirror wenn ipkg.nslu2-linux.org down ist