Kirjoittaja Aihe: Bash skriptejä Linuxille  (Luettu 1671 kertaa)

0 jäsentä ja 1 Vieras katselee tätä aihetta.

Jazzbunny

Bash skriptejä Linuxille
« : torstai 20 Toukokuu - 2010 - 21:39 »
Teenpä joutessani tänne pienen muistilistan hyödyllisistä ja vähemmän hyödyllisistä skripteistä joita tulee vastaan tai tulee tehtyä. Ensimmäisenä omatekemä skripti, joka ottaa kuvankaappauksen koko ruudusta ja nimeää sen päivämäärällä ja juoksevalla numeroinnilla:

kuvakaappaus.sh
#!/bin/bash
dir=$HOME"/Kuvat/"
file="Kuvakaappaus-"$(date "+%Y-%m-%d--")
n=1
ext
=".png"

while [ -e $dir$file$n$ext ]; do
        
let n=n+1
done

scrot $dir$file$n$ext



Eli alussa määritellään hakemisto Kuvat, tiedoston nimi Kuvakaappaus-[päivämäärä], n on juokseva numero ja tiedostomuoto .png
while - done kohta on suomeksi: Niin kauan kun on olemassa tämänniminen tiedosto, kasvata n arvoa yhdellä. Lopussa otetaan kuvakaappaus scrot ohjelmalla.
Ubuntussa voi lopussa käyttää myös komentoa import -window root $dir$file$n$ext. Import komento on asennettu vakiona, mutta sillä oli jotain vaikeuksia läpinäkyvyyden kanssa.
Lopputuloksena on kuvakaappauksia tyyliin:
Kuvakaappaus-2010-03-19--1.png
Kuvakaappaus-2010-05-20--1.png
Kuvakaappaus-2010-05-20--2.png
...


Jakakaa ihmeessä omat pikku apuskriptinne, laittamalla koodin ympärille [ php][ /php]tagit saat koodin väritettyä automaattisesti. Samaten parannusehdotuksia & kysymyksiä saa heittää vapaasti.

Jazzbunny

Vs: Bash skriptejä Linuxille
« Vastaus #1 : keskiviikko 02 Kesäkuu - 2010 - 13:32 »
Osoitteesta http://someonewhocares.org/hosts/ löytyy hyvin koottu hosts tiedosto, joka suodattaa pois kaikki urpot sivut. Kyseinen tiedosto päivittyy aika-ajoin, joten tänään spagettikoodinurkassa teemme pienen scriptin joka päivittää hosts tiedoston aika ajoin uudempaan.

hosts.sh
#!/bin/bash

#tarkistetaan onko hosts tiedosto haettu jo aiemmin, jos ei niin otetaan nykyisestä varmuuskopio
if ! grep -q someonewhocares.org /etc/hosts then
	
	
cp -/etc/hosts /etc/hosts.local
fi

# Haetaan uusi hosts tiedosto, jos someonewhocares ei toimi, ei tehdä mitään.
if wget http://someonewhocares.org/hosts/hosts -O - > /etc/hosts.block 2>/dev/null ; then

	
cat /etc/hosts.block /etc/hosts.local > /etc/hosts

	
chmod 644 /etc/hosts
else
	
exit 
1
fi


Jos haluat käyttää omia asetuksiasi, niin kirjottele niitä hosts.local tiedostoon. Netistä löytyvä tiedosto yhdistetään tuohon hosts.local tiedostoon siten, että hosts.local asetukset ovat määräävässä asemassa jos ristiriitoja esiintyy.

Tipauta valmistunut skripti vaikkapa /etc/cron.weekly/ kansioon ja homma pelaa jatkossa automaattisesti. Eivätkä lemonparty sivustot enää hypi silmille.

Poissa NrK

  • @
  • Vakituinen raapustelija
  • *
  • Viestejä: 231
  • jee
Vs: Bash skriptejä Linuxille
« Vastaus #2 : perjantai 04 Kesäkuu - 2010 - 13:29 »
pakollista linuxleijumista havaittavissa  8)

sais windowsissa olla samaa tasoa nua kyl.

Jazzbunny

Vs: Bash skriptejä Linuxille
« Vastaus #3 : perjantai 04 Kesäkuu - 2010 - 14:14 »
Kyllä kai ton windowssiinkin saa, wget löytyy netistä ja sit tekee vaan jonku .bat tiedoston ja laittaa sen ajastetusti pyörimään esim at komennolla.

Jazzbunny

Vs: Bash skriptejä Linuxille
« Vastaus #4 : perjantai 18 Kesäkuu - 2010 - 21:25 »
Tälläkertaa laitan linkin manuaaliin, eli Advanced Bash-Scripting Guide. Nimestään huolimatta teksti ei ole vaikeaselkoista, tai edellytä aiempaa perehtymistä asiaan. Ohjekirjanen löytyy mm. pdf, txt ja html muodoissa. Esimerkkiskriptejä löytyy mitä moninaisimpiin tarkoituksiin, kuten: usean tiedoston uudelleen nimeäminen, varmuuskopiointi, sekunttikello, satunnais salasanan luonti ja niin eespäin. Online versio löytyy html vaihtoehdon takaa.

Ohjeita löytyy myös msdos .bat tiedostojen väsäämiseen, eli myös windows käyttäjät saavat tästä oppaasta apua.

Poissa NrK

  • @
  • Vakituinen raapustelija
  • *
  • Viestejä: 231
  • jee
Vs: Bash skriptejä Linuxille
« Vastaus #5 : maanantai 28 Maaliskuu - 2011 - 21:16 »
EDIT: never mind, sain korjattua.

tässä kaikille kuitenkin skripti joka printtaa käynnissä olevat prosessit käyttäjältä:

Koodia: [Valitse]
read -p "Anna kayttajan nimi " nimi
declare i=$(ps -U $nimi | wc -l)
echo $i
if [ $i -gt 1 ]
then
ps -U $nimi
else
echo "No processes for user $nimi"
fi
« Viimeksi muokattu: maanantai 28 Maaliskuu - 2011 - 21:53 kirjoittanut NrK »

Tags: