Likes Likes:  0
Resultaten 1 tot 15 van de 22
Pagina 1 van de 2 1 2 LaatsteLaatste
Geen
  1. #1
    Anoniem
    5 Berichten zijn liked



    Thread Starter

    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen

    Beste WHTers,

    Op een flink aantal servers willen wij een cronjob laten draaien met een script dat het volgende doet:

    1) Haal middels wget een configfile op en schrijf weg naar tmp
    2) Check of het configfile afwijkt van de huidig gebruikte config in onze software
    Indien ja: overschrijf de config en herstart onze service
    Indien nee: doe niets


    Alvast bedankt! Uiteraard tegen vergoeding, geef even aan wat je voor een dergelijk script zou willen hebben. Deadline is .... vandaag

    Bedankt!

  2. #2
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Stap 1: zorg dat je overal vanaf je basis server op je remote servers komt via passwordless ssh (ssh-keys dus)
    Indien je een aparte ssh poort gebruikt dien je in het script bij de scp regels een parameter -P <poort> toe te voegen.
    Stap 2: 'serverlist' bestand maken met al je servers
    server1.domein.tld
    server2.domein.tld
    server3.domein.tld
    Stap 3: Onderstaand scriptje runnen nadat je BASECONFIG hebt aangepast naar de naam van je basis config bestand, REMOTECONFIGPATH naar het pad waar je config bestand op de remote servers staat, REMOTECONFIGFILE naar de naam van het config bestand op je remote servers.
    doit.sh:
    Code:
    #!/bin/sh
    # je basis config die geupload moet worden indien gewijzigd
    BASECONFIG=baseconfig
    # het pad (zonder trailing / op de servers waar de config staat)
    REMOTECONFIGPATH=/tmp
    # de naam van het config bestand op de servers
    REMOTECONFIGFILE=config
    MD5BASE=`md5 -q ${BASECONFIG}`
    while read line
    do
     scp -q root@${line}:/${REMOTECONFIGPATH}/${REMOTECONFIGFILE} /tmp/
     MD5REMOTE=`md5 -q /tmp/${REMOTECONFIGFILE}`
     if [ "x${MD5REMOTE}" = "x${MD5BASE}" ];
     then
       echo "${line} config unchanged"
      else
       echo "${line} config changed, uploading ${BASECONFIG}"
       scp -q /tmp/${BASECONFIG} root@${line}:${REMOTECONFIGPATH}/${REMOTECONFIGFILE}
      fi
    done < serverlist
    Stap 4: 25 euro geven aan de eerste de beste dakloze die je tegenkomt
    Laatst gewijzigd door systemdeveloper; 13/12/13 om 01:17.
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  3. #3
    Anoniem
    5 Berichten zijn liked



    Thread Starter
    Fantastisch! Ziet er goed uit, zo even testen. En stap 4 ga ik zeker doen (!)

  4. #4
    Anoniem
    5 Berichten zijn liked



    Thread Starter
    Maar, ik wil op de server ook een service herstarten na het uploaden van het bestand. Dat zie ik hier niet in terug Hoe dat op afstand te doen?

  5. #5
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Citaat Oorspronkelijk geplaatst door Anoniem Bekijk Berichten
    Maar, ik wil op de server ook een service herstarten na het uploaden van het bestand. Dat zie ik hier niet in terug Hoe dat op afstand te doen?
    Je kunt dan iets zoals:

    ssh root@${line} "service xxx restart"

    toevoegen direct na de laatste 'scp' regel.
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  6. #6
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    moderator
    7.022 Berichten
    Ingeschreven
    29/07/03

    Locatie
    Nijmegen

    Post Thanks / Like
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)
    175 Berichten zijn liked


    Naam: Mike
    Bedrijf: admin.nu
    URL: www.admin.nu
    Registrar SIDN: Ja
    KvK nummer: 09139651

    Vergeet ook niet op de servers de ssh commando's te limiteren tot wat het script nodig heeft. Bij een eventuele hack geef je niet zo 123 op alle machines root access vrij.
    "Zo zijn ook wij één leverancier. Dé leverancier in gedegen Linux kennis, wanneer jij dat nodig hebt."
    Boek je admin vandaag nog via : www.admin.nu
    Gevestigd in Nederland en Moldavië

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  7. #7
    Anoniem
    5 Berichten zijn liked



    Thread Starter
    Helaas doet het script niet helemaal wat ik wil:

    1) Hij moet per server een nieuwe wget uitvoeren, en in het wget request het adres van de server (line) als parameter. Via wget genereer ik namelijk een uniek bestand per server

    2) md5 krijg ik niet werkend op een centos server? Moet ik een andere commando gebruiken?

  8. #8
    Anoniem
    5 Berichten zijn liked



    Thread Starter
    PS. als het helemaal werkt krijgt de eerst beste dakloze 20 euro extra

  9. #9
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    moderator
    6.052 Berichten
    Ingeschreven
    21/05/03

    Locatie
    NPT - BELGIUM

    Post Thanks / Like
    Mentioned
    40 Post(s)
    Tagged
    0 Thread(s)
    481 Berichten zijn liked


    Naam: Dennis de Houx
    Bedrijf: All In One
    Functie: Zaakvoerder
    URL: www.all-in-one.be
    Ondernemingsnummer: 0867670047

    Citaat Oorspronkelijk geplaatst door Anoniem Bekijk Berichten
    2) md5 krijg ik niet werkend op een centos server? Moet ik een andere commando gebruiken?
    Gebruik eens "md5sum" in plaats van "md5"
    Dennis de Houx - All In One ~ Official ISPsystem partner

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  10. #10
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    md5 is ind een beethe freebsdish...
    Heb het even aangepast.
    Code:
    #!/bin/sh
    # je basis config die geupload moet worden indien gewijzigd
    BASECONFIG=baseconfig
    # het pad (zonder trailing / op de servers waar de config staat)
    REMOTECONFIGPATH=/tmp
    # de naam van het config bestand op de servers
    REMOTECONFIGFILE=config
    MD5BASE=`md5sum ${BASECONFIG}|awk '{print $1}'`
    while read line
    do
     scp -q root@${line}:/${REMOTECONFIGPATH}/${REMOTECONFIGFILE} /tmp/
     MD5REMOTE=`md5sum /tmp/${REMOTECONFIGFILE}|awk '{print $1}'`
     if [ "x${MD5REMOTE}" = "x${MD5BASE}" ];
     then
       echo "${line} config unchanged"
      else
       echo "${line} config changed, uploading ${BASECONFIG}"
       scp -q /tmp/${BASECONFIG} root@${line}:${REMOTECONFIGPATH}/${REMOTECONFIGFILE}
      fi
    done < serverlist
    Wat je verder bedoelt met punt 1 is me niet helemaal duidelijk. Het doet nu per server een scp aangezien je met wget geen config naar je remote servers kunt uploaden.
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  11. #11
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    moderator
    6.052 Berichten
    Ingeschreven
    21/05/03

    Locatie
    NPT - BELGIUM

    Post Thanks / Like
    Mentioned
    40 Post(s)
    Tagged
    0 Thread(s)
    481 Berichten zijn liked


    Naam: Dennis de Houx
    Bedrijf: All In One
    Functie: Zaakvoerder
    URL: www.all-in-one.be
    Ondernemingsnummer: 0867670047

    Citaat Oorspronkelijk geplaatst door systemdeveloper Bekijk Berichten
    Wat je verder bedoelt met punt 1 is me niet helemaal duidelijk. Het doet nu per server een scp aangezien je met wget geen config naar je remote servers kunt uploaden.
    Ik denk dat hij bedoeld dat het script op elke server geinstalleerd zal worden en het gedownload wordt, en er een php script (of iets dergelijks) gebruikt wordt om het ip/mac/hostname/... te herkennen en daar dan de correcte config voor te maken. Maar dat kun je natuurlijk ook met een push methode doen als je jouw script wat uitbreid met bvb een generic config met zaken als {HOSTNAME} - {IP} en dat uit een lijst laat replace.

    @TS: Misschien is het handiger om naar oplossingen als puppet, chef, cfengine, ... te kijken
    Dennis de Houx - All In One ~ Official ISPsystem partner

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  12. #12
    Anoniem
    5 Berichten zijn liked



    Thread Starter
    Ik wil per while een wget commando doen op de 'master' server. Dat bestand dient dan te worden geupload naar de server uit serverlist.

  13. #13
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    moderator
    6.052 Berichten
    Ingeschreven
    21/05/03

    Locatie
    NPT - BELGIUM

    Post Thanks / Like
    Mentioned
    40 Post(s)
    Tagged
    0 Thread(s)
    481 Berichten zijn liked


    Naam: Dennis de Houx
    Bedrijf: All In One
    Functie: Zaakvoerder
    URL: www.all-in-one.be
    Ondernemingsnummer: 0867670047

    Citaat Oorspronkelijk geplaatst door Anoniem Bekijk Berichten
    Ik wil per while een wget commando doen op de 'master' server. Dat bestand dient dan te worden geupload naar de server uit serverlist.
    Zoiets dan:

    Code:
    #!/bin/sh
    # je basis config die geupload moet worden indien gewijzigd
    BASECONFIG=baseconfig
    # het pad (zonder trailing / op de servers waar de config staat)
    REMOTECONFIGPATH=/tmp
    # de naam van het config bestand op de servers
    REMOTECONFIGFILE=config
    # de service die herstart moet worden
    SERVICE=servicenaam
    # de url om je config te grabben
    URL="http://www.jouw-website.tld/config.php"
    
    while read line; do
      wget -q "${URL}?hostname=${line}" -O /tmp/${BASECONFIG}
      scp -q root@${line}:/${REMOTECONFIGPATH}/${REMOTECONFIGFILE} /tmp/
      MD5BASE=`md5sum /tmp/${BASECONFIG}|awk '{print $1}'`
      MD5REMOTE=`md5sum /tmp/${REMOTECONFIGFILE}|awk '{print $1}'`
      if [ "x${MD5REMOTE}" = "x${MD5BASE}" ]; then
        echo "${line} config unchanged"
      else
        echo "${line} config changed, uploading ${BASECONFIG}"
        scp -q /tmp/${BASECONFIG} root@${line}:${REMOTECONFIGPATH}/${REMOTECONFIGFILE}
        echo "${line} restarting service"
        ssh root@${line} "service ${SERVICE} restart"
      fi
      rm -f /tmp/${BASECONFIG}
      rm -f /tmp/${REMOTECONFIGFILE}
    done < serverlist
    Laatst gewijzigd door The-BosS; 16/12/13 om 18:21.
    Dennis de Houx - All In One ~ Official ISPsystem partner

    Lees hier de webhostingtalk.nl forum regels en voorwaarden!

  14. #14
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    Programmeur / Hoster
    3.952 Berichten
    Ingeschreven
    20/06/06

    Locatie
    Wijlre

    Post Thanks / Like
    Mentioned
    28 Post(s)
    Tagged
    0 Thread(s)
    647 Berichten zijn liked


    Naam: John Timmer
    Bedrijf: SystemDeveloper.NL
    Functie: Eigenaar
    URL: www.systemdeveloper.nl
    KvK nummer: 14083066
    View johntimmer's profile on LinkedIn

    Ah zo... jammer dan. Het was in elk geval een leuke oefening
    SystemDeveloper.NL - 64BitsWebhosting.EU : Softwareontwikkeling & Hosting freaks

  15. #15
    Eenvoudig script om op basis van wget en een diff een config bestand te wijzigen
    geregistreerd gebruiker
    1.453 Berichten
    Ingeschreven
    20/03/09

    Locatie
    Barendrecht

    Post Thanks / Like
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    178 Berichten zijn liked


    Naam: Patrick Ekkel
    Bedrijf: Unsal Infratechniek B.V.
    Functie: Monteur Laagspanning
    URL: unsal.nl

    Ik ben dakloos krijg ik nu 45 euro :P

Pagina 1 van de 2 1 2 LaatsteLaatste

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics