Bash Script alle 30 Mintuen ausführen?

4 Antworten

Hallo

Kann man in dem Script einbauen, dass dieser Befehl ab Script-Start alle 30 Minuten ausgeführt wird.

Das kann man schon machen, aber effektiver ist es dies mit einem Cronjob erledigen zu lassen.

Guck bitte mal diesen Link an um zu lernen wie Cron funktioniert.

hier mein bisheriger Code

Wenn Du unbedingt willst kannst Du es auch ganz schlicht so machen:

watch -n1800 "rm -r /home/otto/Dropbox/Sicherung/Shutdown/ && cp -ar /var/SMDBBackup/ /home/otto/Dropbox/Sicherung/Shutdown/"
  • Damit läuft das Script permanent
  • Das erste Kommando wird alle 1800 Sekunden neu gestartet
  • Das zweite Kommando wird ebenfalls ausgeführt, aber nur wenn beim 1. Kommando kein Fehler aufgetreten ist.

Linuxhase

Rsync wäre hier besser geeignet.

0
@Thomasg

als eigene Antwort ist das o.k. aber doch nicht als Kommentar zur Antwort von @Linuxhase.

1
@Thomasg

Wenn Du das Kommando des Fragestellers kritisieren möchtest, dann tu das bitte in einer Antwort auf seine Frage und nicht auf meine Antwort wo ich dessen Kommandos nur übernommen habe.

Linuxhase

1
@Linuxhase

Da es die eigentliche Frage nicht beantwortet, das würde hier ja schon ausreichend getan, habe ich es hier nur als Ergänzung gesehen. Das war nicht als Kritik an deiner Antwort gedacht.

1
Woher ich das weiß: Hobby

sry. falsche Taste. war natürlich hilfreich. bin leider kein profi. wie würde das in meinem fall aussehen?

0
@iEdik

und in das bash-script haust du die beiden befehle rein..

achte darauf, dass das bash-script richtige chmod Berechtigungen hat.

1
@iEdik

super vielen dank. werde ich gleich mal testen :=)

0
@iEdik

Unter

/usr/bin

legt man keine eigenen Skripte ab.

0
@milos2

war auch ein beispiel..kopiert von der Seite ;)..in C: windows system32 installiert man auch keine Spiele, würde aber dennoch funktionieren..

0

Über cron geht das. Führe den Befehl aus

crontab -e

und ergänze folgende Zeile:

*/30 * * * * /usr/local/bin/skript.sh

Passe natürlich den Namen des Skriptes an.

Linux Screen

Pocketmine Screen Prozess

Ich habe vor, mir einen PocketMine Server auf meinem root server zu hosten! Mein Problem: Das Start script ist schon fest installiert und ich blicke nicht durch, wie ich den Server in einem screen Prozess starten kann! Folgendes ist das Start Script:

#!/bin/bash
DIR="$(cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd)"
cd "$DIR"

DO_LOOP="no"

while getopts "p:f:l" OPTION 2> /dev/null; do
    case ${OPTION} in
        p)
            PHP_BINARY="$OPTARG"
            ;;
        f)
            POCKETMINE_FILE="$OPTARG"
            ;;
        l)
            DO_LOOP="yes"
            ;;
        \?)
            break
            ;;
    esac
done

if [ "$PHP_BINARY" == "" ]; then
    if [ -f ./bin/php5/bin/php ]; then
        export PHPRC=""
        PHP_BINARY="./bin/php5/bin/php"
    elif [ type php 2>/dev/null ]; then
        PHP_BINARY=$(type -p php)
    else
        echo "Couldn't find a working PHP binary, please use the installer."
        exit 1
    fi
fi

if [ "$POCKETMINE_FILE" == "" ]; then
    if [ -f ./PocketMine-MP.phar ]; then
        POCKETMINE_FILE="./PocketMine-MP.phar"
    elif [ -f ./src/pocketmine/PocketMine.php ]; then
        POCKETMINE_FILE="./src/pocketmine/PocketMine.php"
    else
        echo "Couldn't find a valid PocketMine-MP installation"
        exit 1
    fi
fi

LOOPS=0

set +e
while [ "$LOOPS" -eq 0 ] || [ "$DO_LOOP" == "yes" ]; do
    if [ "$DO_LOOP" == "yes" ]; then
        "$PHP_BINARY" "$POCKETMINE_FILE" $@
    else
        exec "$PHP_BINARY" "$POCKETMINE_FILE" $@
    fi
    ((LOOPS++))
done

if [ ${LOOPS} -gt 1 ]; then
    echo "Restarted $LOOPS times"
fi

Dieses Script startet den Server ohne screen Prozess, dazu müsste ich dann aber das Terminal geöffnet lassen! Ich will aber, dass der Server im hintergrund weiter läuft! Mir reicht auch schon eine zweite Datei, neben der vorinstallierten start.sh datei, die z.B pocket.sh heißt und den screen startet + die start.sh in den screen einfügt!

Ich hoffe ihr habt mich einigermaßen verstanden, denn ich bin nicht der allerbeste, meine Fragen gut auszudrücken! ^^

Mfg,

euer EPEffects

...zur Frage

Was möchtest Du wissen?