Linux - Ubuntu. Jak napisac skrypt?


(Bunio11) #1

Witam.

Jak napisać skrypt żeby zawierał takie informacje: http://img685.imageshack.us/img685/8956/skrypt.jpg ?

Wiem, że robi się to chyba na takiej zasadzie:

#!/bin/bash

echo "ilość zajmowanego miejsca przez katalogi znajdujące się w katalogu /:"

find / -maxdepth 1 -type d -exec du -sh '{}' \;

# z kolejnym warunkiem jest troche trudniej niestety, ale mozna ewentualnie

# przyjąć że użytkownicy o którym nam chodzi mają katalogi domowe w /home

echo "liczba użytkowników w systemie wyłączając roota i użytkowników systemowych"

awk '/\/home\//' /etc/passwd | wc -l

echo "ilosc miejsca zajmowanego przez katalogi użytkowników"

find /home -maxdepth 1 -exec du -sh '{}' \;

echo "partycje i stopien zajetosci"

df -h

echo "czas pracy systemu"

uptime

tylko nie wiem jak wycinać dane fragmenty z konsoli, które wstawia się do skryptu.

Proszę o pomoc.


(Sawyer47) #2

Chodzi Ci o zachowanie wyjścia polecenia? Coś w tym stylu:

UPTIME_VAL=$(uptime);

echo "Czas pracy systemu: <<$UPTIME_VAL>>";

(Bunio11) #3

chodzi mi o to żeby ten skrypt wyświetlał to co na screenie, a napisane to ma być tak jak dałem przykład w pierwszym poście.

np. że jak odpale sobie ten skrypt na innym kompie z linuxem to pokarze mi to co jest na screenie.


(Sawyer47) #4

No to proszę przykładowy kawałek:

KERNEL_VER=$(uname -srn)

DATE_VAL=$(date)

echo -e "\t\tKernel: $KERNEL_VER"

echo -e "\t\tHost: $HOSTNAME"

echo -e "\t\tData: $DATE_VAL"

Analogicznie możesz sobie dopisać resztę i dostosować do własnych potrzeb.


(Bunio11) #5

kolega z klasy zapodał mi takie coś:

#!/bin/bash

echo "Mój skrypt"

echo "data: " ` date +%Y.%m.%d\t%H:%m `

echo "czas: " ` uptime `

echo "kto: " ` who|w -h | cut -d" " -f 1 | sort -u `

echo "host: " ` hostname `

echo "nazwa: " ` uname `

echo "procesor: " ` cat /proc/cpuinfo | grep "model name"| head -1 `

echo "sieciowa: " ` lspci | grep Ethernet | cut -d : -f 3 `

echo "grafika: " ` lspci | grep VGA | cut -d: -f3 `

echo "pamiec: " ` hwinfo --memory `

ale jak wyszukiwać w konsoli takich rzeczy:

  1. who|w -h | cut -d" " -f 1 | sort -u

  2. cat /proc/cpuinfo | grep "model name"| head -1

co wpisać w konsole żeby to wyszukać ?


(roobal) #6

Ale chodzi Ci skąd się biorą takie polecenia czy o co Ci chodzi? Takie polecenia biorą się z potrzeby ich użycia a jak ich używać to wyczytasz w podręcznikach lub plikach pomocy programów i poleceń w tym wypadku wpisujesz w terminalu:

man who

man cut

man sort

man cat

man grep

To jedno polecenie, np. to cat /proc/cpuinfo | grep "model name"| head -1 składa się tak na prawdę z trzech poleceń: cat wyświetla w tym wypadku zawartość wskazanego pliku, czyli /proc/cpuinfo. Taka kreska | oddziela polecenia. Grep ma za zadanie wyświetlić podane wyrażenie z tego pliku w tym wypadku ma pokazać wszystko co zawiera frazę model name. Polecenie Head pokazuje początkową cześć zawartości pliku. Żeby to lepiej zrozumieć to zobacz zawartość pliku:

processor	: 0

vendor_id	: GenuineIntel

cpu family	: 6

model : 14

model name	: Intel(R) Celeron(R) M CPU 440 @ 1.86GHz

stepping	: 12

cpu MHz : 1862.061

cache size	: 1024 KB

fdiv_bug	: no

hlt_bug : no

f00f_bug	: no

coma_bug	: no

fpu : yes

fpu_exception	: yes

cpuid level	: 10

wp : yes

flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx constant_tsc up arch_perfmon bts pni monitor tm2 xtpr pdcm

bogomips	: 3724.12

clflush size	: 64

power management:

I przy pomocy wspomnianego polecenia z całego pliku pokazaną masz tylko tą linię:

model name	: Intel(R) Celeron(R) M CPU 440 @ 1.86GHz

Pozdrawiam!


(Bunio11) #7

dzięki za pomoc. juz wszystko jasne :slight_smile: