This shows you the differences between two versions of the page.
unixmix:capitole:capitol-09 [2013/07/12 13:00] alexef created |
unixmix:capitole:capitol-09 [2014/09/12 08:50] (current) razvan [Recapitulare] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | = Shell scripting 2 = | + | = Shell Scripting 2 = |
+ | [[https://docs.google.com/presentation/d/10B39_rTL7VQe20VewNB0sEK6JZFwBGI0JlF20Pbb-B0/pub?start=false&loop=false&delayms=3000|Slide-uri de prezentare]] | ||
== Exerciții == | == Exerciții == | ||
Line 10: | Line 11: | ||
cd ~ | cd ~ | ||
mkdir slash | mkdir slash | ||
- | cd $_ | + | cd !$ |
mkdir conf lib bin logs | mkdir conf lib bin logs | ||
cd conf | cd conf | ||
Line 33: | Line 34: | ||
* Găsiți toate fișierele cu extensia .conf. | * Găsiți toate fișierele cu extensia .conf. | ||
* Găsiți toate fișirele .conf și creați un fișier de backup cu extensia .backup, exemplu ''apache2.conf -> apache2.conf.backup''. | * Găsiți toate fișirele .conf și creați un fișier de backup cu extensia .backup, exemplu ''apache2.conf -> apache2.conf.backup''. | ||
- | <del>* Găsiți toate numele de fișiere, fără calea lor.</del> | ||
* Realizaţi un script numit ''checkfile.sh'' care: | * Realizaţi un script numit ''checkfile.sh'' care: | ||
Line 45: | Line 45: | ||
* Scrieți un script care primește doi parametri, //start// și //count// și afișează un număr de //count// procese începând de la indexul //start//, în ordinea crescătoare a PID-urilor. Hint: ''sort'' | * Scrieți un script care primește doi parametri, //start// și //count// și afișează un număr de //count// procese începând de la indexul //start//, în ordinea crescătoare a PID-urilor. Hint: ''sort'' | ||
- | * Folosind ''sed'' scrieți un script care generează mail-uri în mod automat. | + | * Scrieți un script care generează mail-uri în mod automat. Ca date de intrare, creați un fișier cu structura: |
- | + | ||
- | Ca date de intrare, creați un fișier cu structura: | + | |
<code>nume,email | <code>nume,email | ||
Alex,alex@example.com | Alex,alex@example.com | ||
Line 63: | Line 61: | ||
Ca date de ieșire, scriptul va crea într-un director ''emails'' câte un fișier cu numele //email// personalizat pentru fiecare //nume// din fișierul dat. | Ca date de ieșire, scriptul va crea într-un director ''emails'' câte un fișier cu numele //email// personalizat pentru fiecare //nume// din fișierul dat. | ||
- | * Puteți face același lucru folosind bash? Dacă da, cum? Scrieți un alt script care folosește bash pentru înlocuiri. | ||
- | == Hands on (3) == | ||
* Scrieți un script care crează copii de siguranță pentru toate fișierele din ''/etc'' sau un folder dat ca parametru, cu extensia ''.conf''. | * Scrieți un script care crează copii de siguranță pentru toate fișierele din ''/etc'' sau un folder dat ca parametru, cu extensia ''.conf''. | ||
* backupurile vor fi stocate într-un director cu numele: ''backup-YYMMDDHHmm'' din directorul curent (hint: ''date'') | * backupurile vor fi stocate într-un director cu numele: ''backup-YYMMDDHHmm'' din directorul curent (hint: ''date'') | ||
Line 71: | Line 67: | ||
- | == Hands on (4) == | + | == Hands on (3) == |
* Programați ca peste 5 minute să fie creat un fisier ''executat'' în home-ul utilizatorului curent | * Programați ca peste 5 minute să fie creat un fisier ''executat'' în home-ul utilizatorului curent | ||
- | * Configurați ca scriptul de backup de la //Hands on (3)// să ruleze o dată la 10 minute. | + | * Configurați ca scriptul de backup de mai sus să ruleze o dată la 10 minute. |
- | == Resurse utile == | + | |
+ | |||
+ | == Recapitulare == | ||
- | * [[:home|Wiki-ul cursului]] | + | * Scrieți un script care creează directorul ''numbers'', iar în director creează 100 de fișiere ale căror nume este un număr cuprins între 100 și 199. |
+ | * Scrieți un script care afișează ''inode-ul'' unui fișier primit ca argument. | ||
+ | * Hint: ''stat''. |