Ongelmia prosessien ja käynnistyksen kanssa

Discussion in 'Linux -keskustelu' started by Knikke, Jan 10, 2007.

  1. Knikke

    Knikke Member

    Joined:
    Oct 16, 2006
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    11
    Olen käyttänyt linuxia verrattaen vähän ja olen nyt törmännyt kahteen ongelmaan.
    Palvelimen käyttis molemmissa palvelimissa on Suse 10.1

    Ongelma 1 - Prosessit jää päälle
    Ongelma on se kun teen varmuuskopiota cronin avulla niin linux tukkeutuu avoinna olevista prosesseista. Varmuuskopioinnin idea on se, että palvelimen x tiedot laitetaan tar-pakettiin ja siirretään scp:llä toiselle palvelimelle. Kun kopiointi on suoritettu, on prosesseissa kymmenniä scp-yhteyksiä + tar:in luonteja.

    Vaihe 1:
    Cron ajaa kopiointiscriptin joka näyttää seuraavalta (palvelin X):
    #!/bin/bash
    dirname=`date +%Y_%m_%d`
    mkdir backups/ww2_backups/$dirname
    tar -cvpf ww2_backup.tar /bin /boot /dev /etc /lib /media /mnt /opt /proc /root$
    mv ww2_backup.tar backups/ww2_backups/$dirname
    exit


    Vaihe 2:
    Toinen palvelin hakee palvelimella x olevan kansion (palvelin Y):
    #!/bin/bash
    dirname=`date +%Y_%m_%d`
    scp -r root@192.168.10.40:/home/backups/ww2_backups/$dirname /home/backups/ww2_backups; exit
    logout


    SSH yhteys on mahdollistettu avainparin avulla. Systeemi kopioi kyllä onnistuneesti kaikki, mutta prosessien määrä kasvaa ihan älyttömästi --> Palvelimesta tulee todella hidas.

    Noiden exittien ja logouttien käytöstä en oo oikeen varma, että miten niiden pitäisi mennä.

    Ongelma 2 - Palvelin ei lataa verkkokorttia käynnistyessä
    Eli linux yrittää käynnistää verkkokorttia kun kone käynnistetään, mutta siihen tulee vaan teksti FAILED. Sit kun kirjaudun linuxiin, ei netti toimi. Saan netin toiminaan kun menen YAST:n kautta verkkolaitteet/verkkokortti sivulle (hakee verkkokortin ja verkon asetukset).

    Toivotaan, että joku osaa auttaa.

    Terveisin,
    Knikke
     
  2. HmTT

    HmTT Regular member

    Joined:
    Sep 29, 2005
    Messages:
    484
    Likes Received:
    0
    Trophy Points:
    26
    Kokeilepas huvikseen noita scriptejä ilman exit ja logout komentoja. Itse olettaisin tilanteen olevan sellainen, että cron ajanhetkellä xx:yy huomaa, että sen pitäisi suorittaa nuo scriptit. Cron pistää scriptissä olevat komennot _rinnaikkain_ suoritukseen. Mitä tapahtuukaan kun cron pääsee "exit / logoout" komennon kohdalle? Cron loggaa itsensä ulos / sammuttaa itsensä ;) Koska taas cronin pitäisi olla "jatkuvasti" taustalla pyörimässä, roottiprosessi päättää käynnistää cronin uudelleen. Cron taas käynnistyessään huomaa, että kellonaika on xx:yy ja päättää rueta suorittamaan samaa scriptiä uudelleen. Tämä looppi jatkuu kyseisen minuutin ajan. Riippuen koneen nopeudesta, siinä ajassa tietokone ehtii käynnistää jopa useita satoja prosesseja -> voit olla varma että kone kyykyttää :)

    Tämä on kyllä vain minun olettama, en ole täysin varma pitääkö se paikkaansa.

    Nyt en jaksa rueta jauhamaan (muista) tietoturvaongelmista noiden sinun scriptien kanssa. Kaiketi sinä tiedät tarkalleen mitä olet tekemässä.
     
  3. Knikke

    Knikke Member

    Joined:
    Oct 16, 2006
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    11
    Hei,

    Kiitoksia neuvoista. Muokkaan nuo logoutit ja exitit pois. Tässä muutama prosessi joita tonne kertyy 100-200 yhden kopioinnin aikaana:

    root 24698 0.0 0.1 4568 1208 ? Ss 03:41 0:07 scp -r -f /home
    root 24725 0.6 0.2 8620 2556 ? Ss 03:42 1:41 sshd: root@nott
    root 24733 0.0 0.1 4568 1212 ? Ss 03:42 0:07 scp -r -f /home
    root 24763 0.6 0.2 8760 2684 ? Ss 03:43 1:38 sshd: root@nott

    Kuulisin mielellään tietoturvastakin... jos siitä on jotain sanottavaa..

    Terveisin,
    Knikke
     
  4. Sakarias

    Sakarias Active member

    Joined:
    Oct 26, 2004
    Messages:
    1,806
    Likes Received:
    12
    Trophy Points:
    68
    Miksi kopioida /dev ja /proc kansiot?

    Verkkokortin modulin voi lisätä /etc/modules.autoload tiedostoon. SuSE:ssa vastaava on näköjään /etc/sysconfig/kernel ja siellä editoidaan kohtaa MODULES_LOADED_ON_BOOT. Itse en käytä SuSE:a. konsolissa #modprope 'verkkokorttisi moduli' saa kaiketi kortin toimimaan, jos ei käynnistyksessä lataudu. Tarvittavan modulin saat selvittää itse kun et sanonut verkkokorttisi mallia.
     
  5. Knikke

    Knikke Member

    Joined:
    Oct 16, 2006
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    11
    Eipä tainnut auttaa exittien poisto. Tänään oli taas palvelin jumissa viikonlopun jäljiltä :C Eli kun se croni alkaa ajaan noita .sh-tiedostoja, niin ajaako se ne jotenkin erilailla jos itse ajan ne konsolista tyyliin ./tiedosto.sh?

    T: Knikke
     
  6. Sakarias

    Sakarias Active member

    Joined:
    Oct 26, 2004
    Messages:
    1,806
    Likes Received:
    12
    Trophy Points:
    68
    mikäs on /etc/crontab sisältö? v parametrin ottaisin pois ja lisäisin -j tai -z. edelleen ottaisin pois /boot (tätä ei juuri muuteta, eikä usein edes liitetä!!) /proc /dev nämä luodaan käynnistyksessä ja voivat muuttua kopionnin aikana. Samoin ihmetystä aiheuttaa /media ja /mnt. tuossahan tulee kopsattua vaikka asemaan unohtunut DVD tai USB-tikku. Itse kopsaan systeemin Knoppix CD:llä. Käynnissä olevan systeemin kopiointi on aina arveluttavaa, koska osa tiedostoista kuitenkin on aina käytössä ja eivät välttämättä kopioidu.
     
  7. Knikke

    Knikke Member

    Joined:
    Oct 16, 2006
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    11
    Täytyypä koittaa mainitsemillasi parametreillä. Mitä tuon parametrin muutos vaikuttaa?

    Sen verran vähän oon linuxia käyttänyt, etten tiedä tarkemmin noiden kansioidan sisältöjä (tai sitä mitä niistä tarvitsen jos joudun joskus palauttamaan järjestelmän paketista). Palvelin toimii web-palvelimena, eli ainoat tiedostot jotka käyttäjän toimesta muuttuvat, ovat nettisivut ja tietokannat.

    Mites muuten tuollaisen järjestelmän palauttaminen käytännössä menee? Palvelin on ihan oikea monen kiintolevyn palvelin, eli vaikuttaako RAIDIT ja muut tuohon mahdolliseen palautukseen?

    Cronien sisällöt:
    - Palvelin joka luo paketit
    * 2 * * * cd /home; ./varmuuskopioi.sh
    * 4 * * * cd /home/backups; ./tuhoa_vanha.sh

    - Palvelin joka hakee paketin toiselta
    * 4 * * * cd /home/backups; ./tuhoa_vanha.sh
    * 4 * * * cd /home; ./nouda.sh

    Eli paketit rakennetaan joka yö kello 2 alkaen. Kello 4 toinen palvelin ottaa yhteyden toiseen ja lataa paketin.

    T: Knikke
     
  8. Knikke

    Knikke Member

    Joined:
    Oct 16, 2006
    Messages:
    20
    Likes Received:
    0
    Trophy Points:
    11
    varmuuskopioi.sh on nyt:

    #!/bin/bash
    dirname=`date +%Y_%m_%d`
    mkdir backups/ww2_backups/$dirname
    tar -cvpf ww2_backup.tar /bin /etc /lib /opt /root /sbin /srv /subdomain /sys /usr /var
    mv ww2_backup.tar backups/ww2_backups/$dirname

    Pitäsikö noissa olla ;-merkkejä rivien perässä?

    T: Knikke
     
  9. Sakarias

    Sakarias Active member

    Joined:
    Oct 26, 2004
    Messages:
    1,806
    Likes Received:
    12
    Trophy Points:
    68
    Pistän malliksi oman varmuuskopiointiscriptin vähän lyhennettyä. Jostain netistä kopsittu alkujaan. Olen jopa kokeillut toimivuuta.

    Voisit miettiä myös tuon varmuuskopion kryptaamista, jos sisältää arkaluontoista dataa.

    Yksi kompastuskivi on mahdollinen rekursio, eli varmistetaan myös se ww2_backup.tar. Tuolla systeemi menee solmuun. CPU:ta rasittaa myös käytetty pakkaustapa.

    Paras varmistus saadaan kun systeemi ei ole käynnissä. Eli käytetään jotain liveCD linukkaa, toista konetta ym. tarin sjasta voidaan käyttää dd komentoa tai partimage, rescue mondo ym...

    Raidista mulla ei ole omaa kokemusta. Se voidaan määritellä niin monella tavalla. Pitäisi tietää tarkemmin. Parhaimmillaan raid systeemi kestää vaikka kovalevyn hajoamisen ilman että dataa katoaa.

    lopuksi se scripti:

    #! /bin/bash
    ## Backup script for Gentoo Linux
    ## muutettu 11.11.06 /boot pitää olla liitetty myös /home kopioidaan!


    echo -=- Aloitetaan varmistus...
    echo -=-
    echo -=- alustetaan muuttujat...
    ## varmistuksen sijainti
    stage4Location=/home/xxxx/download/backup/
    ## ?? lisäys gentoon juuri - ei / loppuun
    rootdir=/

    ## stage 4 tarpall
    archive=$stage4Location$(hostname)-stage4.tar.bz2

    ##
    ## Hakemistot joita ei kopioida. Loppuun / !!!
    dir_excludes="/mnt/* /dev/* /proc/* /sys/* /tmp/* /usr/protage/distfiles/*"
    ## ??? poistettu /var/tmp

    ## Tässä ei oteta tar pakettia mukaan. Muita tiedostoja voidaan
    ## lisätä. Erotus välilyönneillä. * mahdollinen. Tärkeä!!!

    file_excludes="$archive"
    ##
    ## Yhdistetään kaksi *-excludes muuttujaa

    excludes="$(for i in $dir_excludes; do if [ -d $i ]; then \
    echo -n " --exclude=$i/*"; fi; done) $(for i in $file_excludes; do \
    echo -n " --exclude=$i"; done)"

    ## optiot stage 4 tarpallolle
    ## tarOptions="$excludes --create --absolute-names --preserve-permissions --bzip2 --verbose --totals --file"

    echo -=-
    echo -=- Luodaan the stage 4 tarpallo 4 tarball \=\=\> $archive
    echo -=-
    echo -=- Suoritetaan seuraava kommento:
    echo -=- tar -cjpvf ${archive} $rootdir $excludes

    sleep 5
    echo

    tar -cjpvf ${archive} $rootdir $excludes

    echo -=- Scripti on suoritettu!!
     

Share This Page