Pagina 1 van 1
Spotweb automatisch bijwerken op Linux
Geplaatst: 01 apr 2012, 19:11
door Mickroz
nightspirit81 schreef:Onderstaande tekst zou je in een tekstfile op kunnen nemen om Spotweb automatisch te laten updaten via een cronjob.
Er is rekening mee gehouden dat het proces upgrade-db.php een lange tijd kan duren.
Het meerdere keren gelijktijdig uitvoeren daarvan kan allerlei problemen met zich mee brengen tot een vastlopend systeem aan toe.
Sla de tekstfile op onder de naam /home/gebruiker/spotweb-upgrade.sh
Geef de file execute rechten (chmod +x).
Een cronjob aanmaken doe je over het algemeen met de opdracht: sudo crontab -e
Voeg in het edit scherm een extra regel toe met de onderstaande inhoud (om ieder uur Spotweb bij te werken).
0 * * * * /home/gebruiker/spotweb-upgrade.sh > /dev/null
Upgrade script voor Spotweb
Code: Selecteer alles
#!/bin/sh
# Upgrade script voor Spotweb.
#
# Eerst testen of het proces nog niet draait.
# Dit doe ik aan de hand van het bestaan van een tempfile.
if [ -f /tmp/.spotweb-upgrade ]
then
echo "Er draait al een update, dus niet nog een starten."
# Stoppen met verdere update aangezien de file al aanwezig is.
exit
fi
# Tempfile aanmaken aangezien de update nog niet draait
touch /tmp/.spotweb-upgrade
wait
echo "Eerst maar eens Spotweb zelf updaten."
cd /dir/to/spotweb
git pull
echo "Dan wachten tot de pull compleet is."
wait
echo "Daarna starten we voor de zekerheid de database upgrade."
/path/to/php/php upgrade-db.php
wait
# Tempfile weer opruimen, anders wordt er maar eenmalig ge-upgrade.
rm /tmp/.spotweb-upgrade
Alternatief upgrade script voor Spotweb
Code: Selecteer alles
#!/bin/sh
# Alternatief upgrade script voor Spotweb.
# Plaats het script in root van Spotweb en maak een cron aan.
#
echo "Spotweb updaten..."
git pull
wait
echo "Database upgrade..."
# Command om php locatie te bepalen: "which php"
/usr/bin/php upgrade-db.php
wait
echo "Spotweb is geupdate!"
Re: Spotweb automatisch bijwerken op Linux
Geplaatst: 01 apr 2012, 19:17
door Mickroz
met bovenstaande code wil ik mijn spotweb up to date houden, nu kan ik met git stash mijn edits opslaan, en met git stash pop de laatste stash mn edits weer terugzetten, de stash wordt daarna ook verwijderd, dus ik heb geen stash id nodig.
dus zoiets:
Code: Selecteer alles
#!/bin/sh
# Upgrade script voor Spotweb.
#
# Eerst testen of het proces nog niet draait.
# Dit doe ik aan de hand van het bestaan van een tempfile.
if [ -f /tmp/.spotweb-upgrade ]
then
echo "Er draait al een update, dus niet nog een starten."
# Stoppen met verdere update aangezien de file al aanwezig is.
exit
fi
# Tempfile aanmaken aangezien de update nog niet draait
touch /tmp/.spotweb-upgrade
wait
echo "Eerst maar eens Spotweb zelf updaten."
cd /dir/to/spotweb
git stash
wait
git pull
echo "Dan wachten tot de pull compleet is."
wait
git stash pop
wait
echo "Daarna starten we voor de zekerheid de database upgrade."
/path/to/php/php upgrade-db.php
wait
# Tempfile weer opruimen, anders wordt er maar eenmalig ge-upgrade.
rm /tmp/.spotweb-upgrade
echo "Spotweb is geupdate!"
Re: Spotweb automatisch bijwerken op Linux
Geplaatst: 16 apr 2020, 11:39
door tosko
- Spoiler: show
- Hoi,
Allereerst dank voor het delen van de script. Ik draai Spotweb in docker, hoe kan ik dan het beste omgaan met commands zoals:
CODE: SELECTEER ALLES
if [ -f /tmp/.spotweb-upgrade ]
cd /dir/to/spotweb
/path/to/php/php upgrade-db.php
Enz. Heb je enig idee?
nvm zie voor docker container update script mijn eerst volgende post.
Re: Spotweb automatisch bijwerken op Linux
Geplaatst: 16 apr 2020, 14:37
door tosko
Voor diegene dit dit ook nodig hebben voor docker, heb ff zelf van in elkaar gezet..
(i know beats the purpose van docker, ik zou ook telkens een nieuwe image kunnen compilen

, geen zin)
Code: Selecteer alles
#!/bin/bash
spotweb_container_name="spotweb" #<-- Pas dit aan naar jou spotweb container naam
# Eerst maar eens kijken of de update al gaande is
docker exec -w /tmp $spotweb_container_name [ -f .spotweb-upgrade ] && { echo "Hij is al bezig..."; exit; }
# Als de script zover komt, dan hebben we dus nog geen update gaande. Ff een temp file aanmaken
docker exec -w /tmp $spotweb_container_name touch .spotweb-upgrade
wait
# Nu de magic.. git pull
docker exec -w /var/www/spotweb $spotweb_container_name git pull
wait
# Ff de database upgraden
docker exec -w /var/www/spotweb/bin $spotweb_container_name ./upgrade-db.php
wait
# Ennuh, temp file weer verwijderen zodat ie de volgende keer ook netjes gaat updaten
docker exec -w /tmp $spotweb_container_name rm .spotweb-upgrade