Uživatelské nástroje

Nástroje pro tento web


skripty-a-funkce

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
skripty-a-funkce [2019/01/27 00:09]
Miroslav Bernát
skripty-a-funkce [2019/01/27 00:11] (aktuální)
Miroslav Bernát
Řádek 10: Řádek 10:
 | **while** <​seznam1>​**;​ do** <​seznam2>​**;​ done** | spouští opakovaně „seznam2“,​ dokud „seznam1“ vrací úspěšný návratový kód\\ ''#​!/​bin/​bash''​\\ ''#​ Skript otvírá čtyři terminálová okna.''​\\ ''​I=0''​\\ ''​while [ $i -lt 4 ]; do xterm &''​\\ <​tab>''​i=$[$i+1];​ done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript vytváří soubor v intervalu pěti minut.''​\\ ''​while true; do''​\\ <​tab>''​touch pic-`date|awk '​{print $2,​$3,​$4,​$6}'​|sed 's/ /​_/​g'​`.jpg''​\\ <​tab>''​sleep 300; done''​ | | **while** <​seznam1>​**;​ do** <​seznam2>​**;​ done** | spouští opakovaně „seznam2“,​ dokud „seznam1“ vrací úspěšný návratový kód\\ ''#​!/​bin/​bash''​\\ ''#​ Skript otvírá čtyři terminálová okna.''​\\ ''​I=0''​\\ ''​while [ $i -lt 4 ]; do xterm &''​\\ <​tab>''​i=$[$i+1];​ done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript vytváří soubor v intervalu pěti minut.''​\\ ''​while true; do''​\\ <​tab>''​touch pic-`date|awk '​{print $2,​$3,​$4,​$6}'​|sed 's/ /​_/​g'​`.jpg''​\\ <​tab>''​sleep 300; done''​ |
 | **until** <​seznam1>​**;​ do** <​seznam2>​**;​ done** | spouští opakovaně „seznam2“,​ dokud „seznam1“ vrací neúspěšný návratový kód\\ ''#​!/​bin/​bash''​\\ ''#​ Skript vypíše čísla od 0 do 99.''​\\ ''​a=-1''​\\ ''​until [ $a -eq 99 ]; do''​\\ <​tab>''​a=$(expr $a + 1)''​\\ <​tab>''​echo $a; done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript kopíruje soubory z domovského do webového adresáře, kde každou hodinu vytvoří nový\\ # adresář, přičemž v případě jeho zaplnění na více než 90 % smaže adresáře starší 30 dní.''​\\ ''​while true; do''​\\ <​tab>''​DISKFUL=$(df -h $WEBDIR | grep -v File | \''​ \\ <​tab>''​awk '​{print $5 }' | cut -d "​%"​ -f1 -)''​\\ \\ <​tab>''​until [ $DISKFUL -ge "​90"​ ]; do''​\\ ​ <​tab><​tab>''​WEBDIR=/​var/​www/​webcam''​\\ <​tab><​tab>''​DATE=`date +%Y%m%d`''​\\ <​tab><​tab>''​HOUR=`date +%H`''​\\ <​tab><​tab>''​mkdir $WEBDIR/"​$DATE"''​\\ \\ <​tab><​tab><​tab>''​while [ $HOUR -ne "​00"​ ]; do''​\\ <​tab><​tab><​tab>''​PICDIR=/​home/​user/​pics''​\\ <​tab><​tab><​tab>''​DESTDIR=$WEBDIR/"​$DATE"/"​$HOUR"''​\\ <​tab><​tab><​tab>''​mkdir "​$DESTDIR"''​\\ <​tab><​tab><​tab>''​cp $PICDIR/​*.jpg "​$DESTDIR"/''​\\ <​tab><​tab><​tab>''​sleep 3600''​\\ <​tab><​tab><​tab>''​HOUR=`date +%H`; done''​\\ \\ <​tab>''​DISKFULL=$(df -h $WEBDIR | grep -v File | \''​\\ <​tab>''​awk '{ print $5 }' | cut -d "​%"​ -f1 -)''​\\ <​tab>''​done''​\\ \\ ''​TOREMOVE=$(find $WEBDIR -type d -mtime +30)''​\\ <​tab>''​for i in $TOREMOVE; do''​\\ <​tab>''​rm -rf "​$i";​ done''​\\ ''​done''​ | | **until** <​seznam1>​**;​ do** <​seznam2>​**;​ done** | spouští opakovaně „seznam2“,​ dokud „seznam1“ vrací neúspěšný návratový kód\\ ''#​!/​bin/​bash''​\\ ''#​ Skript vypíše čísla od 0 do 99.''​\\ ''​a=-1''​\\ ''​until [ $a -eq 99 ]; do''​\\ <​tab>''​a=$(expr $a + 1)''​\\ <​tab>''​echo $a; done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript kopíruje soubory z domovského do webového adresáře, kde každou hodinu vytvoří nový\\ # adresář, přičemž v případě jeho zaplnění na více než 90 % smaže adresáře starší 30 dní.''​\\ ''​while true; do''​\\ <​tab>''​DISKFUL=$(df -h $WEBDIR | grep -v File | \''​ \\ <​tab>''​awk '​{print $5 }' | cut -d "​%"​ -f1 -)''​\\ \\ <​tab>''​until [ $DISKFUL -ge "​90"​ ]; do''​\\ ​ <​tab><​tab>''​WEBDIR=/​var/​www/​webcam''​\\ <​tab><​tab>''​DATE=`date +%Y%m%d`''​\\ <​tab><​tab>''​HOUR=`date +%H`''​\\ <​tab><​tab>''​mkdir $WEBDIR/"​$DATE"''​\\ \\ <​tab><​tab><​tab>''​while [ $HOUR -ne "​00"​ ]; do''​\\ <​tab><​tab><​tab>''​PICDIR=/​home/​user/​pics''​\\ <​tab><​tab><​tab>''​DESTDIR=$WEBDIR/"​$DATE"/"​$HOUR"''​\\ <​tab><​tab><​tab>''​mkdir "​$DESTDIR"''​\\ <​tab><​tab><​tab>''​cp $PICDIR/​*.jpg "​$DESTDIR"/''​\\ <​tab><​tab><​tab>''​sleep 3600''​\\ <​tab><​tab><​tab>''​HOUR=`date +%H`; done''​\\ \\ <​tab>''​DISKFULL=$(df -h $WEBDIR | grep -v File | \''​\\ <​tab>''​awk '{ print $5 }' | cut -d "​%"​ -f1 -)''​\\ <​tab>''​done''​\\ \\ ''​TOREMOVE=$(find $WEBDIR -type d -mtime +30)''​\\ <​tab>''​for i in $TOREMOVE; do''​\\ <​tab>''​rm -rf "​$i";​ done''​\\ ''​done''​ |
-| **for** <​promenna>​ (**in** <​retezec>​)**;​** **do** <​seznam>​**;​ done** | přiřadí proměnné postupně hodnotu všech parametrů skriptu či daného řetězce a vykoná seznam příkazů\\ ''#​!/​bin/​bash''​\\ ''#​ Skript vytvoří uživatele uvedené v souboru "​users"​ v pracovním adresáři,​\\ # přidá je do skupiny "​admins"​ a nastaví heslo "​password"​.''​\\ ''​for user in $(cat users); do''​\\ <​tab>''​useradd -g admins $user''​\\ <​tab>''​echo password | passwd --stdin $user''​\\ ''​done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript vypíše obsah pracovního adresáře.''​\\ ''​for x in $(ls -F)''​\\ ''​do''​\\ <​tab>''​echo "V adresari `pwd` se nachazi soubor/​adresar:​ $x"''​\\ ''​done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript spočítá počet položek v pracovním adresáři.''​\\ ''​POC=0''​\\ ''​for nazev in *''​\\ <​tab>''​do''​\\ <​tab><​tab>''​POC=$%%(($POC+1))%%''​\\ <​tab>''​done''​\\ ''​echo "V adresari `pwd` je $POC polozek."''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript změní formát všech souborů .tif na .jpg.''​\\ ''​for pic in *.tif; do''​\\ <​tab>''​convert "​$pic"​ "​$(echo "​$pic"​ | sed '​s/​\.tif/​.jpg/'​)"''​\\ ''​done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript zjistí, který z uvedených procesů běží, vypíše jeho jméno včetně počtu řádků,\\ # které zabírá a nakonec zobrazí výpis všech procesů a celkový počet řádků.''​\\ ''​services="​http pmon lsnr sap"''​\\ ''​for service in $services''​\\ <​tab>''​do running_processes="​$(ps -ef | grep $service | grep -v grep)"''​\\ <​tab><​tab>''​if [ -n "​$running_processes"​ ]''​\\ <​tab><​tab><​tab>''​then echo''​\\ <​tab><​tab><​tab>''​echo $service:''​\\ <​tab><​tab><​tab>''​echo''​\\ <​tab><​tab><​tab>''​echo "​$running_processes"''​\\ <​tab><​tab><​tab>''​echo''​\\ <​tab><​tab><​tab>''​echo "​lines:​ $(echo "​$running_processes"​ | wc -l)"''​\\ <​tab><​tab><​tab>''​echo''​\\ <​tab><​tab><​tab>''​echo "​=========="''​\\ <​tab><​tab>''​fi''​\\ <​tab>''​done''​\\ ''​echo''​\\ ''​echo "​summary:"''​\\ ''​echo''​\\ ''​ps -ef''​\\ ''​echo''​\\ ''​echo "​lines:​ $(ps -ef | wc -l)"''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript se připojí ke všem serverům, jejichž IP adresy jsou uvedeny v souboru "​servers",​''​\\ ''​# na nich spustí příkaz "​hostname"​ a "uname -a" a výsledek pak zobrazí na STDOUT.''​\\ ''​# Podmínkou takového připojení jsou funkční autentizační rsa/dsa klíče pro ssh.''​\\ ''​for a in $(cat servers); do''​\\ ''​ssh $a '​hostname;​ uname -a'; done''​ |+| **for** <​promenna>​ (**in** <​retezec>​)**;​** **do** <​seznam>​**;​ done** | přiřadí proměnné postupně hodnotu všech parametrů skriptu či daného řetězce a vykoná seznam příkazů\\ ''#​!/​bin/​bash''​\\ ''#​ Skript vytvoří uživatele uvedené v souboru "​users"​ v pracovním adresáři,​\\ # přidá je do skupiny "​admins"​ a nastaví heslo "​password"​.''​\\ ''​for user in $(cat users); do''​\\ <​tab>''​useradd -g admins $user''​\\ <​tab>''​echo password | passwd --stdin $user''​\\ ''​done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript vypíše obsah pracovního adresáře.''​\\ ''​for x in $(ls -F)''​\\ ''​do''​\\ <​tab>''​echo "V adresari `pwd` se nachazi soubor/​adresar:​ $x"''​\\ ''​done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript spočítá počet položek v pracovním adresáři.''​\\ ''​POC=0''​\\ ''​for nazev in *''​\\ <​tab>''​do''​\\ <​tab><​tab>''​POC=$%%(($POC+1))%%''​\\ <​tab>''​done''​\\ ''​echo "V adresari `pwd` je $POC polozek."''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript změní formát všech souborů .tif na .jpg.''​\\ ''​for pic in *.tif; do''​\\ <​tab>''​convert "​$pic"​ "​$(echo "​$pic"​ | sed '​s/​\.tif/​.jpg/'​)"''​\\ ''​done''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript zjistí, který z uvedených procesů běží, vypíše jeho jméno včetně počtu řádků,\\ # které zabírá a nakonec zobrazí výpis všech procesů a celkový počet řádků.''​\\ ''​services="​http pmon lsnr sap"''​\\ ''​for service in $services''​\\ <​tab>''​do running_processes="​$(ps -ef | grep $service | grep -v grep)"''​\\ <​tab><​tab>''​if [ -n "​$running_processes"​ ]''​\\ <​tab><​tab><​tab>''​then echo''​\\ <​tab><​tab><​tab>''​echo $service:''​\\ <​tab><​tab><​tab>''​echo''​\\ <​tab><​tab><​tab>''​echo "​$running_processes"''​\\ <​tab><​tab><​tab>''​echo''​\\ <​tab><​tab><​tab>''​echo "​lines:​ $(echo "​$running_processes"​ | wc -l)"''​\\ <​tab><​tab><​tab>''​echo''​\\ <​tab><​tab><​tab>''​echo "​=========="''​\\ <​tab><​tab>''​fi''​\\ <​tab>''​done''​\\ ''​echo''​\\ ''​echo "​summary:"''​\\ ''​echo''​\\ ''​ps -ef''​\\ ''​echo''​\\ ''​echo "​lines:​ $(ps -ef | wc -l)"''​\\ \\ ''#​!/​bin/​bash''​\\ ''#​ Skript se připojí ke všem serverům, jejichž IP adresy jsou uvedeny v souboru "​servers",​\\ # na nich spustí příkaz "​hostname"​ a "uname -a" a výsledek pak zobrazí na STDOUT.\\ # Podmínkou takového připojení jsou funkční autentizační rsa/dsa klíče pro ssh.''​\\ ''​for a in $(cat servers); do''​\\ ''​ssh $a '​hostname;​ uname -a'; done''​ |
 | **break** (<n>) | ukončí daný cyklus, //n// určí počet cyklů\\ ''#​!/​bin/​bash''​\\ ''#​ Skript se ukončí, pokud hodnota proměnné se rovná 3.''​\\ ''​for myloop in 1 2 3 4 5; do''​\\ <​tab>''​echo "​$myloop"''​\\ <​tab>''​if [ "​$myloop"​ -eq 3 ]; then''​\\ <​tab>''​break # This line will break out of the loop; fi''​\\ ''​done''​ | | **break** (<n>) | ukončí daný cyklus, //n// určí počet cyklů\\ ''#​!/​bin/​bash''​\\ ''#​ Skript se ukončí, pokud hodnota proměnné se rovná 3.''​\\ ''​for myloop in 1 2 3 4 5; do''​\\ <​tab>''​echo "​$myloop"''​\\ <​tab>''​if [ "​$myloop"​ -eq 3 ]; then''​\\ <​tab>''​break # This line will break out of the loop; fi''​\\ ''​done''​ |
 | **continue** (<n>) | opakuje další cyklus, //n// určí počet cyklů\\ ''#​!/​bin/​bash''​\\ ''#​ Skript povolí v názvech souborů jen malá písmena.''​\\ ''​LIST="​$(ls)"''​\\ ''​for name in "​$LIST";​ do''​\\ <​tab>''​if %%[[ "​$name"​ != *[[:​upper:​]]* ]]%%; then''​\\ <​tab>''​continue;​ fi''​\\ \\ ''​ORIG="​$name"''​\\ ''​NEW=$(echo $name | tr '​A-Z'​ '​a-z'​)''​\\ ''​mv "​$ORIG"​ "​$NEW"''​\\ ''​echo "new name for $ORIG is $NEW"''​\\ ''​done''​ | | **continue** (<n>) | opakuje další cyklus, //n// určí počet cyklů\\ ''#​!/​bin/​bash''​\\ ''#​ Skript povolí v názvech souborů jen malá písmena.''​\\ ''​LIST="​$(ls)"''​\\ ''​for name in "​$LIST";​ do''​\\ <​tab>''​if %%[[ "​$name"​ != *[[:​upper:​]]* ]]%%; then''​\\ <​tab>''​continue;​ fi''​\\ \\ ''​ORIG="​$name"''​\\ ''​NEW=$(echo $name | tr '​A-Z'​ '​a-z'​)''​\\ ''​mv "​$ORIG"​ "​$NEW"''​\\ ''​echo "new name for $ORIG is $NEW"''​\\ ''​done''​ |
Poslední úprava: 2019/01/27 00:11 autor: Miroslav Bernát

počet návštěv: