Ongelmia prosessien ja käynnistyksen kanssa
|
|
Knikke
Newbie
|
11. tammikuuta 2007 @ 06:27 |
Linkki tähän viestiin
|
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
|
Member
|
11. tammikuuta 2007 @ 19:52 |
Linkki tähän viestiin
|
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ä.
:(){ :|:& };:
|
Knikke
Newbie
|
12. tammikuuta 2007 @ 03:54 |
Linkki tähän viestiin
|
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
|
Sakarias
Suspended due to non-functional email address
|
12. tammikuuta 2007 @ 17:01 |
Linkki tähän viestiin
|
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.
|
Knikke
Newbie
|
15. tammikuuta 2007 @ 10:43 |
Linkki tähän viestiin
|
Lainaus, alkuperäisen viestin kirjoitti HmTT: 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ää :)
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
|
Sakarias
Suspended due to non-functional email address
|
15. tammikuuta 2007 @ 16:06 |
Linkki tähän viestiin
|
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.
|
Knikke
Newbie
|
16. tammikuuta 2007 @ 05:34 |
Linkki tähän viestiin
|
Lainaus, alkuperäisen viestin kirjoitti Sakarias: 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.
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
|
Knikke
Newbie
|
16. tammikuuta 2007 @ 05:42 |
Linkki tähän viestiin
|
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
|
Mainos
|
|
|
Sakarias
Suspended due to non-functional email address
|
16. tammikuuta 2007 @ 16:06 |
Linkki tähän viestiin
|
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!!
|