unixallwhatwasonlab, Science, Technology, IT, Linux, LINUX(1)


1. Stworzyć katalog o nazwie składającej się słowa kopia oraz bieżącego roku i miesiąca

mkdir "kopia- `date +%y%m%d`"

2. Wyświetlić tekst: w aktualnym katalogu jest X plików php, gdzie X będzie wyznaczona na podstawie polecenia ls

echo 'jest plikow' `ls *.php | wc -l`

3. W pliku skan.txt zapisać listę tylko nazw plików w kolejności od największego.

ls -l | sort -nr > scan.txt

4. Przy pomocy edytora pico stworzyć plik pliki_do_skopiowania.txt z nazwami plików i katalogów do zrobienia kopi. Napisać polecenie, które skopiuje wszystkie pozycje z pliku pliki_do_skopiowania.txt do katalogu kopie

cp -R `cat pliki_do_skopiowania.txt` kopia-\ 071002/

5. Wyswietlic liste tylko adresow email (bez MAILER-DAEMON) wysylajacych poczte w kolejnosci od tego co najwiecej wysyla maili. Skorzystac z mailq.

mailq | grep @ | sort | uniq -c

6. Wyswietlic imie i nazwisko osob pracujacych z siec.wsi na podstawie finger

finger | grep siec.wsi | awk '{ print $2,$3 }'

7. Na podstawie pliku /proc/cpuinfo wyswietlic nazwe procesora serwera

cat /proc/cpuinfo | grep "model \name" | cut -d : -f 2

8. Na podstawie pliku /proc/meminfo wyswietlic liczbe zainstalowanej i wolnej pamieci serwera.

cat /proc/meminfo | grep MemTotal && cat /proc/meminfo | grep MemFree

9. Z polecenia uptime wyswietlic obciazenie serwera z ostatnich 15 minut (ostatni par. load average)

uptime | awk '{print $11}'

10. Wyswietlic imiona i nazwiska kont na podstawie polecenia finger lub pliku /etc/passwd

cat /etc/passwd | cut -d : -f 5,6 | cut -d : -f 1

11. Wyswietlic wszystkie linki twarde do zadanego pliku (skorzystac z polecenia find

find . -inum n

n -numer -iwezla szukanego pliku

12. Napisac skrypt, ktory wyswietli liczby podzielne przez 3 mniejsze od 20.

#!/bin/sh

j=1;

while [ $j -le 20 ]; do

for i in $j

do

y=$(echo $i%3 | bc)

case $y in

"0") echo "liczba $i jest podzielna przez 3" ;;

*) echo "" > /dev/null

esac

j=$(($j+1))

done

done

13. Na podstawie polecenia uptime dopisac do pliku load.log wpis DATA-GODZ LOAD_AVERAGE gdzie DATA to aktualna data w formacie DD/MM/RRRR, GODZ to aktualna godzina w formacie HH:MM, LOAD_AVERAGE to ostatni parametr polecenia uptime

a=$(date '+%d/%m/%Y %H:%M') && b=$(uptime | awk '{print$6,$7,$8,$9,$10}') && echo $a $b >>log

14. Na podstawie polecenia "nslookup www.onet.pl" stworzyc plik o nazwie : dane_ADRES_IP.txt gdzie ADRES_IP to adres ip dla www.onet.pl zwrocony przez nslookup

touch dane_`(nslookup www.onet.pl | grep Address | sed -n '2,$p' | awk '{ print $2 }')`.txt

p,m

15. Napisać w vi skrypt wyświetlający na podstawie polecenia 'ps ax' listę występujących statusów (kolumna stat) wraz z liczbą procesów posiadających ten status. Ustawić kolejność wg najczęściej nwystępujących.

16. Napisać w vi skrypt wyświetlający na podstawie polecenia df listę 5-ciu najbardziej zajętych systemów plików w formacie: procent użycia nazwa systemu plików

df |awk `{print $5 „” $L} ` |sort -nr |head -n5

17. Napisać w vi skrypt, który na podstawie polecenia du wyświetli listę 3 najwięcej zajmujących podkatalogów katalogu głównego. Nie wyświetlać podkatalogów!

du/-- max -depth=1 |sort -nr |head -n3

18. Napisać skrypt, który wyświetli 10 największych skrzynek pocztowych użytkowników zaczynających się na 'si'. Skrzynki to pliki w katalogu /var/spool/mail

ls /var/sped/ mail /si* -lsn |grep „[^-] „ |head

19. Napisać skrypt, który na podstawie plików /etc/group oraz /etc/passwd wyświetli nazwiska i imiona osób należących do grupy rok20053

ID =` cat /etc /group |grep „^2053”| awk -F `i' `{print $3}'`

20. Napisać skrypt w vi, który wszystkim plikom *.txt z wszystkich podkatalogów nada uprawnienia rw-r--r--

#!/bin/bash

cd /tmp/pliki/zadania

for a in `find . -name "*.txt" -print`

do

chmod 644 $a

done

21. Na podstawie polecenia mailq wyświetlić liczbę maili w kolejce oraz ile miejsca zajmują. Dołączyć również informacje o mailach od MAILER-DAEMON

mailq |grep `^[a-z A-Z 0-9]”|awk `BEGIN {SUMA=0} {SUMA+=$2}

END {print „suma : „suma”}'

22. Napisac skrypt, ktory wyswietli 10 najwiekszych skrzynek pocztowych z katalogu /var/spool/mail w formacie

- konto (??? MB)

#!/bin/sh

ls -l /var/mail | awk '{print "Rozmiar " $5 ," konto "$9}' | sort -k 2 -n -r | head -n 10

23. Stworzyc skrypt, ktory ma wyswietlić ile jest miejsca wolnego na /home/stud, oraz jeżeli miejsca jest więcej niz 50% to wyswietlić tekst "miejsca dużo"

#!/bin/sh

a=$(df -H /home/ | grep % |awk '{print $5}'| cut -d % -f 1)

echo "wolnego miejsca na home jest $a"

if [ $a -le 50 ]

then

echo "malo miejsca"

else

echo " "

fi

24. W pliku uptime.log dopisać aktualne obciążenie serwera z ostatnich 5-ciu minut w zaokrągleniu do 1 miejsca po przecinku

#!/bin/sh

printf "obciazenie aktualne :%.1f\n" `uptime | awk '{print $10}'`>>uptime.log

25. Napisać skrypt, który znajdzie wszystkie pliki z rozszerzeniem php3 i php w podkatalogach i wszystkie te pliki skopiuje do katalogu kopia ze zmianą rozszerzenia na phps

#!/bin/sh

for a in `find . -name "*.php3" -or -name "*.php"`

do

cp $a /tmp/pliki/zadania/kopia/

done

cd /tmp/pliki/zadania/kopia/

for b in `ls *.php*`

do

mv $b `echo $b`s

echo $b

done

#!/bin/bash

Z="php3 php"

mkdir kopia

or i in $Z

do

PLIKI=`find ./ -iname "*.$i"`

for j in $PLIKI

do

NAZWA=`basename "$j" ".$i"`

cp "$j" "kopia/$NAZWA.phps"

done

echo "$PLIKI"

done

26. Na podstawie polecenia ps wyświetlić zestawienie:

- procesy ze statusem X - sztuk Y

- lista tych procesów...

- procesy ze statusem X2 - sztuk Y2

- lista tych procesów...

- ...

#!/bin/sh

PROCESY=`ps ax | grep -v "PID"`

STATY=`echo "$PROCESY" | awk '{print $3}' | sort | uniq`

for i in $STATY

do

LICZBA=`echo "$PROCESY" | grep " $i " | wc -l`

PR=`echo "$PROCESY" | grep " $i " | awk '{print $5}' | sort | uniq `

echo "STAT: $i LICZBA: $LICZBA"

echo "$PR"

done

27. Na podstawie polecenia who wyświetlić zestawienie:

- adres sieci logowania: X - uzytkowników Y

- lista tych użytkowników...

- adres sieci logowania: X2 - uzytkowników Y2

- lista tych użytkowników...

- ...

!/bin/sh

WHO=`who`

IPS=`echo "$WHO" | awk '{ print $5 }' | sed -e 's/(//' | sed -e 's/)//' | sort | uniq`

for i in $IPS

do

ILOSC=`echo "$WHO" | grep "$i" | wc -l`

USERS=`echo "$WHO" | grep "$i" | awk '{ print $1 }'`

echo "Siec: $i - ilosc: $ILOSC - lista:"

echo "$USERS"

done

28. Napisać skrypt, który jeżeli suma maili w kolejce przekroczy 1MB, to wyśle do administratora maila z informacją

#!/bin/sh

MAILE=`mailq | grep '^[a-zA-Z0-9]'`

WIELKOSC=`echo "$MAILE" | awk 'BEGIN { suma = 0 } { suma += $2 } END { print suma }'`

if [ "$WIELKOSC" -gt 1048576 ]

then

echo "wiadomosc" | mail -s "TEMAT" root@wsi.edu.pl

fi

cat /etc/passwd | cut -d `:' -f 2,3

cat /etc/passwd | awk -F `:' `{ print $1}'

29. Na podstawie pliku konfiguracyjnego o formacie

- KATALOGI=~/public_html;~/skrypty

- KOPIA=~/kopia

- wyświetlić liczbę plików znajdujących się w katalogach oraz ile one zajmują miejsca

- wykonać kopie wszystkich katalogów w katalogu kopia w pliku o nazwie zawierającej dzisiejszą datę

#!/bin/sh

if [ -e k.conf ]

then

. k.conf

else

echo "Brak pliku konfiguracyjnego."

exit

fi

for KATALOG in $(echo "$KATALOGI" | sed -e 's/\;/\ /')

do

echo "[+] Przetwarzam $KATALOG"

echo "[=] Liczba plikow: `eval ls -lR $KATALOG | grep '^-' | wc -l`"

echo "[=] Zajmowane miejsce: `eval du -sh $KATALOG | awk '{ print $1 }'`"

echo ""

done

echo "[+] Tworze kopie zapasowa katalogow: `echo $KATALOGI | sed -e 's/;/, /'`"

mkdir `eval echo $KOPIA` 2> /dev/null

A=`echo "$KATALOGI" | sed -e 's/;/ /'`

KOPIE=`eval echo "$A"`

tar -cf `eval echo $KOPIA`/`date '+%d-%m-%Y'`.tar $KOPIE

if [ -a `eval echo $KOPIA`/`date '+%d-%m-%Y'`.tar ]

then

echo "[+] Archiwum zostalo utworzone: `eval echo $KOPIA`/`date '+%d-%m-%Y'`.tar"

else

echo "[-] Blad przy tworzeniu archiwum."

fi

30. Napisać skrypt, który dla zalogowanych użytkowników wyświetli listę o strukturze:

- Konto Imię Nazwisko Katalog_domowy

31. Napisać skrypt, który dla podkatalogów bieżącego katalogu wyświetli listę w formacie:

- Nazwa katalogu, prawa, zajmowane miejsce



Wyszukiwarka

Podobne podstrony:
DISTILLING KNOWLEDGE new histories of science, technology, and medicine
Science Technology Smartphone science
PP British Science & Technology
DISTILLING KNOWLEDGE new histories of science, technology, and medicine
Technologia Informacyjna sprawozdanie psk Linux, Politechnika Świętokrzyska, Elektrotechnika, I rok,
Windows linux, Bezpieczeństwo narodowe - UAM Poznań, I rok (2012-2013), Technologia informacyjna - J
Red Hat Enterprise Linux OpenStack Platform 3 Deployment Guide Foreman Technology Preview en US
Bootowalny pendrive z systemem Linux
Poczta w systemie Linux
neostrada linux id 316732 Nieznany
Technologia Informacyjna 22.11.2008, ściągnięte, IT, Technologia Informacyjna(5)
quota, !!!Uczelnia, wsti, materialy, II SEM, systemy operacyjne linux
Administracja, Informatyka, Linux, Linux - Podręcznik
r00-0-spr-spr, ## Documents ##, Debian GNU Linux

więcej podobnych podstron