[bash] Pomoč pri programiranju skript v linuxu
Mihaz
Član
Živjo.
Na faksu se učimo linux in imamo za domačo nalogo nekaj kratkih nalog pa bi rabu malo pomoči
---------------------------------------------------------------
Napišite program v lupini, ki vsakih pet minut preveri, če se na sistemu pojavi nek proces in ga poskusa ubiti. Ime procesa podamo v ukazni vrstici.
Primer uporabe:
$ ubij firefox
bo na računalniku vsakih pet minut preveril, če teče kak proces z imenom firefox, ter ga bo poskušal ubiti. Navodilo: pri tem obvezno uporabite ukaz kill.
---------------------------------------------------------------------
Napišite program v lupini, ki pregleda datoteko /etc/passwd in izpiše število procesov za vsakega uporabnika.
Primer izpisa: procesi
root 45
peter 2
vaje 8
------------------------------------------------------------------
V lupini bash napišite program preveri_geslo, ki preveri veljavnost danega gesla glede na podane pogoje! Geslo naj je podano kot argument programa. Veljavna gesla morajo zadoščati naslednjim pogojem:
1) Minimalna dolžina naj je osem znakov;
2) Vsaj dva znaka morata biti numerična znaka; in
3) Vsebovati mora vsaj dva od naslednjih ne-alfanumeričnih znakov: @, #, $ ali %.
Na faksu se učimo linux in imamo za domačo nalogo nekaj kratkih nalog pa bi rabu malo pomoči
---------------------------------------------------------------
Napišite program v lupini, ki vsakih pet minut preveri, če se na sistemu pojavi nek proces in ga poskusa ubiti. Ime procesa podamo v ukazni vrstici.
Primer uporabe:
$ ubij firefox
bo na računalniku vsakih pet minut preveril, če teče kak proces z imenom firefox, ter ga bo poskušal ubiti. Navodilo: pri tem obvezno uporabite ukaz kill.
---------------------------------------------------------------------
Napišite program v lupini, ki pregleda datoteko /etc/passwd in izpiše število procesov za vsakega uporabnika.
Primer izpisa: procesi
root 45
peter 2
vaje 8
------------------------------------------------------------------
V lupini bash napišite program preveri_geslo, ki preveri veljavnost danega gesla glede na podane pogoje! Geslo naj je podano kot argument programa. Veljavna gesla morajo zadoščati naslednjim pogojem:
1) Minimalna dolžina naj je osem znakov;
2) Vsaj dva znaka morata biti numerična znaka; in
3) Vsebovati mora vsaj dva od naslednjih ne-alfanumeričnih znakov: @, #, $ ali %.
Komentarji
cut -f 7 -d : /etc/passwd | sort -r | uniq -c >bla
cut -c 1-5 bla > num
cut -c 6- bla | grep "/" > shell
echo brez lupine >>shell
paste shell num
rm num
rm shell
Napišite program v lupini, ki vsake pet minut preveri, če se na sistemu pojavi nek proces in ga poskusa ubiti. Ime procesa podamo v ukazni vrstici
# uporaba : ubij ime_procesa
while [1]
do
sleep 300
if [`ps -ef | grep $1 | cut -c1-4`]
killall $1
fi
done
ce je pa vec zagnanih procesov/pidov pa das v eno zanko zgornji ukaz pa je
1.)V bash lupini napišite program izpisi.sh, ki v danem direktoriju in rekurzivno v vseh poddirektorijih izpiše imena vseh datotek, ki so daljše od dane dolžine. Prvi argument programa naj bo dolžina v bytih, drugi pa ime direktorija.
2.) V bash lupini napišite program, ki vodi evidenco o gostoti uporabnikov na sistemu, Program naj vodi evidenco za vsakih 30 sekund in za ne več kot 2 dni nazaj. Evidenca naj bo shranjena v datotekah dnaes in včeraj v formatu :
Cas: 11:50:10 Uporabnikov: 3
Cas: 11:50:45 Uporabnikov: 5
če jih kdo zna, naj jih razreši, hvala že vnaprej! wink
Napišite skripto, ki bo delala varnostne kopije podatkovne baze vsak dan ob v naprej določeni uri (parameter). Čas preberite 1x na minuto (uporaba ukaza sleep). Skipta se naj avtomatsko naloži ob zagonu računalnika (kot servis).
Namen naloge je, da se seznanite z uporabo Init in RC.
backup baze se naredi z mysqldump, jasno mi ni ostalo:)
hvala za pomoč
Ker se sliši zelo zanimivo, vedno trdim da imamo na SŠ premalo programiranja (sploh pa OK same)
Potreboval bi vašo pomoč. Rad bi rešil spodnjo nalogo:
Napišite program v lupini, ki izpiše, kolikokrat ter koliko časa (skupno) so bili uporabniki v nekem času prijavljeni na sistemu. Čas podamo z dvema datumoma kot argumenta ukazne vrstice.
Primer izpisa:
$ prijava 15/10 20/10
vaje 5x 1 dan 12:34
demsared 11x 5 dni 1:12
blazlena 1x 0 dni 0:01
...
* pri reševanju preučite ukaz last
Razmišljal sem, da bi izhod ukaza last preusmeril v tekstovno datoteko (prijave.txt) in iz nje izluščil uporabnike, ter seštel njihov skupni čas prijave ter število prijav. A se mi zatakne že pri branju iz datoteke. Nevem kako bi prebral določenega uporabnika iz datoteke ter seštel kolikokrat se je prijavil v določenem obdobju.
Hvala za vašo pomoč.
Uporabiti moramo grep, awk,... Any idea ?
--
aja to je drugi clovek s skoraj istim vprasanjem na istem postu..
"Napišite niz ukazov, ki poiščite vse pojavitve datoteke 'core' na sistemu. Izhod niza je datoteka '~/corefiles'. Izpise napak, ki se pojavijo pri izvajanju ukaznega niza, ignorirajte."
naredil sem:
find / -name core
in potem mi izpiše . A je to pravilno? Kako pa naredim izhod niza.. ?
probal sem
find / -name core mkdir ~/corefiles
pa ne deluje..
EDIT: sem ze ugotovil
find / -name core >corefiles ....
A drugi primer zna kdo ?
Potem pa še me zanima ta naloga, če bi mi lahko kdo pomagal:
"Napišite niz ukazov, ki izpiše aktivne procese prijavljenega uporabnika na sistemu. Tudi v tem primeru izpišite vse procese, določite njihovo število in na koncu dodajte še statusno vrstico z naslednjim tekstom "Uporabnik u je aktiviral n procesov"
hvala lepa