[Info] Den RaspberryPI und damit SaS aktuell halten (Raspbian wheezy)

S

SF1975

Guest
Hallo,
Beim Stöbern im Netz bin ich über folgendes gestolpert:
Regelmäßiges Rebooten mit vorherigem Update des OS ;)
Demnach die zu erstellende Datei mit "nano /var/cron/update.sh"
Code:
#!/bin/sh
apt-get update && apt-get upgrade -y && reboot
Das wäre die Minimalversion, mit einem Reboot, sofern die vorherigen Aktionen erfolgreich waren.
Danach den Cronjob mit "crontab -e" für 4 Uhr morgens eintragen: "* 4 * * * /var/cron/update.sh".
Ich habe das Verzeichnis "/var/cron" gewählt, da dort ja bereits eine Datei bei der Installation eingetragen wurde.
Wer mag, kann ja andere Inhalte wählen. Auf der verlinkten Seite wurde noch eine Version mit Logfile gezeigt.
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
Ich teste mal die Maximal-Variante aus dem Link oben:
PHP:
#!/bin/bash

## Create Log? [0=no , 1=yes]
LOG=1
LOGFILE=/var/www/UPGRADE.log
# Maximale Logfile Grösse in Bytes? (leer lassen falls unbegrenzt) (512000 bytes = 500 kilobytes = 0.48 megabytes)
MAXLOGSIZE="512000"
# falls MAXLOGSIZE genutzt wird: Logfile rotieren(1) oder löschen(0)?
LOGROTATE=0

# -------------------------------------------------------------- #
# >>> >> >  DO NOT MESS WiTH ANYTHiNG BELOW THiS LiNE!  < << <<< #
# -------------------------------------------------------------- #

# write and check log
_LOG() {
    if [ -n "$LOGFILE" ]; then
        #check size of logfile
        if [ -n "$MAXLOGSIZE" ] && [ -f "$LOGFILE" ] && [ "$(stat --printf="%s" $LOGFILE)" -gt "$MAXLOGSIZE" ]; then
            if [ "$LOGROTATE" = 1 ]; then
                echo "rotating logfile $LOGFILE"
                mv -f $LOGFILE ${LOGFILE}.1 >/dev/null 2>&1
            else
                echo "deleting logfile $LOGFILE"
                rm -f $LOGFILE >/dev/null 2>&1
            fi
            touch $LOGFILE
        fi
        echo "[$(date +"%d.%m.%Y %H:%M:%S")]  $1" >> $LOGFILE
    fi
}

apt-get update
[ ! -z "$LOG" -a "$LOG" == 1 ] && _LOG "$(apt-get upgrade -s)"
apt-get upgrade -y

/usr/bin/rpi-update

CurrentDate=$(date -d@$(date +%s) +"%H%d%m%Y")
rpiupdateDate=$(date -d@$(stat -c %Z /root/.rpi-firmware/) +"%H%d%m%Y")

[ "$CurrentDate" == "$rpiupdateDate" ] && reboot

exit 0
 
Abend

Eine Info fehlt noch, am Besten im Titel: Für welches OS auf dem Raspberry?

Ich hab nämlich OpenELEC drauf, und da wird es nichts mit apt-get.
Code:
##############################################
# OpenELEC - The living room PC for everyone #
# ...... visit http://www.openelec.tv ...... #
##############################################

OpenELEC (official) Version: 3.2.4
openelec:~ # apt-get

 There is no working 'apt-get'.

 'apt-get' is a command to install, update and remove software which
 is stored in a non local repo. 'apt-get' does nothing then connecting to such
 repo, downloads the software, unpacks the software, updates a big local
 local database with all filepaths and other informations about the
 installed software or removes or updates installed Software.

 With OpenELEC it is not possible to change the system for security and
 stability reasons so even 'apt-get' would not be able to do this.
 We also dont have and want to maintain such a repo for various other
 great reasons.

 Also Ubuntu or Debian packages are often outdated and not compatible
 with OpenELEC

 TIP: use XBMC's addon browser to enhance your OpenELEC system
...und die XBMC Addons sind Pythonskripte (werden als ZIP-Datei installiert).
Wie dieses: xbmc-fritzbox-callmonitor
 
Zuletzt bearbeitet:
Für die Update-Überwachung auf dem RasPi kann ich nur die Software Webmin empfehlen.
Nach der Installation ist es ganz einfach und komplett auf deutsch umstellbar!
Damit wird schon auf der Übersichtsseite angezeigt ob irgendwelche Updates für das Betriebssystem vorliegen.
Wenn man dann den Link anklickt, werden alle gefundenen Updates angezeigt und zur Installation angeboten.

Ausserdem lässt sich damit die komplette Benutzer- und Zugriffsverwaltung sehr einfach durchführen/überwachen.
Webmin-RasPi.png

Joe
 
Zuletzt bearbeitet:
Hallo,
Klingt soweit gut, aber welches Paket muss man da nutzen und wie installiert man es?
@Koy... : erledigt :)
 
Zuletzt bearbeitet:
Hallo,
Thx. Werde ich mir heute/morgen mal anschauen :)
 
Hallo,
Ich habe vor, den PI mittels dieses Scripts aktuell zu halten:update.sh (0777)
Code:
#!/bin/bash
apt-get update && apt-get upgrade -y && reboot
#EOF
Ich nutze den PI2 mit SaS4PI von JL3.
Leider wird der CronJob nicht ausgeführt.

manuell kann ich ihn mit "bash xxxx.sh ausführen.
Habe ich einen Fehler im Scrip, oder muss man das "bash" im CronJob unterbringen?

Ich stehe gerade mit beiden Füßen auf dem Schlauch.

[Hintergrund]

  • Die DECT200 soll den PI morgens um 8°° Uhr starten.
  • Der PI soll sich um 8³° Uhr updaten/aktuell halten und neu starten.
  • Der PI soll sich um 20:55 Uhr selber herunterfahren
  • shutdown.sh (0777)
    Code:
    #!/bin/bash
    shutdown -h now
    #EOF
  • Die DECT200 soll sich dann selber ausschalten und erst am nächsten Morgen einschalten.

Das versuche ich halt durch die Cronjobs zu realisieren.
Code:
 Edit this file to introduce tasks to be run by cron.
#
# m h  dom mon dow   command
* * * * * /var/cron/shstart.sh
30 8 * * * /var/cron/update.sh
55 20 * * * /var/cron/shutdown.sh
Wenn diese aber nicht ausgeführt werden, kappt die DECT200 einfach den Strohm. Auf Dauer sicherlich nicht gesund für den PI...
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
Das versuche ich halt durch die Cronjobs zu realisieren.
Code:
 Edit this file to introduce tasks to be run by cron.
#
# m h  dom mon dow   command
* * * * * /var/cron/shstart.sh
30 8 * * * /var/cron/update.sh
55 20 * * * /var/cron/shutdown.sh

Ist das die systemweite crontab? Versuch mal mit dem user root (... vor dem Pfad).
 
Hallo,
Es ist mit crontab -e angelegt und der Job wie folgt:
"15 10 * * * root /var/cron/reboot.sh"
reboot.sh:
Code:
#!/bin/bash
reboot
#EOF
(Rechte: Root & 777)
 
Hallo,
Mache ich mal.
Ich lasse einen Ping vom PI auf mein NAs laufen. Wenn der Reboot erfolgt, sollte der ja plötzlich unterbrochen sein.
Ich melde mich in ca. 10 Minuten noch einmal.

[EDIT]
Nichts passiert, der Ping lief durch :mad: Ich werde noch :blonk:.

Die Cronjobs für SaS laufen doch auch durch .....
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
Ich habe nun einmal folgendes probiert:

Mit diesem Eintrag in crontab -e kann ich ihn zumindest "abschalten":
55 20 * * * /sbin/shutdown -h now
Der DECT200 schaltet sich danach (2 Minuten) auch wie gewünscht aus :).
Warum es nicht anders funktioniert, :noidea: :gruebel: ....

[EDIT]
Einen Reboot kann man so auch auslösen.
Mal schauen, was ich mit den Updates mache ...
 
Zuletzt bearbeitet von einem Moderator:
Moins

Benutzer pi
Wie heisst es doch so schön?
:doktor:
sudo schrieb:
With great power comes great responsibility
...und daher darf er auch alles...
Code:
[I]55 20 * * * [/I]sudo su -c '[I]/sbin/shutdown -h now[/I]'
Zwischen den Hochkommata kannst du ein ganzes Skript unterbringen...
Code:
[I]55 20 * * * [/I]sudo su -c 'echo "system will reboot in 10 seconds" | wall ; sleep 10 ; reboot'
Zeilentrenner ist das Semikolon.

...happy coding
 
Hallo,
Thx :mrgreen: werde ich mal probieren.

8) ... Gerade probiert:

Code:
30 12 * * * sudo su -c 'apt-get update && apt-get upgrade -y && reboot'
 
Zuletzt bearbeitet von einem Moderator:
Nett, ich übersetz mal auf Deutsch, ja? :D

12:30 Uhr -
cron schrieb:
Ich werd jetzt mal root und führe folgende Kommandos mit su aus...
apt-get update
...wenn das geklappt hat...
apt-get upgrade
...wenn das auch geklappt hat...
reboot
...und tschüß.

Wenn also das erste oder zweite apt-get fehlschlägt wird reboot nicht ausgeführt.
 
Hallo,
Jooo, darum auch eine andere Frage von mir (>>>klick<<<), damit ich sehe, ob es einen Reboot gab oder nicht ;)

Keine Mail, kein Reboot :mrgreen:
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.