= 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 == == Hands on (1) == * Rulați următoarele comenzi pentru a genera niște fișiere și directoare. cd ~ mkdir slash cd !$ mkdir conf lib bin logs cd conf touch apache.conf bind.conf postfix.conf hosts services protocols cd .. cd lib touch dns.so gethostbyname.so ip.so tcp.so smtp.so cd .. cd logs mkdir apache bind postfix touch apache/access.log apache/error.log bind/access.log bind/error.log postfix/access.log postfix/error.log cd .. cd bin cp /bin/true apache cp /bin/true postfix cp /bin/true bind cd ~ * Găsiți toate fișierele și directoarele din directorul ''slash''. * Găsiți toate fișierele ce au legătură cu apache. * 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''. * Realizaţi un script numit ''checkfile.sh'' care: * primește ca argument un string și verifică dacă un fișier cu acest nume există pe disc în directorul curent * dacă fișierul nu există în directorul curent, acesta va fi creat cu numele dat ca argument * dacă fisierul există pe disc în directorul curent, acesta va fi redenumit în ''_exista'' unde argument este argumentul transmis scriptului (numele fișierului) * Rulați scriptul de 2 ori cu același parametru. == Hands on (2) == * 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 generează mail-uri în mod automat. Ca date de intrare, creați un fișier cu structura: nume,email Alex,alex@example.com Traian,traian@example.com precum și un **template**, de genul: Salut NUME! ... Acest mesaj îți este adresat ție și numai ție. 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. * 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'') * extensia copiilor de siguranță va fi ''.bak'' in loc de ''.conf'' == Hands on (3) == * Programați ca peste 5 minute să fie creat un fisier ''executat'' în home-ul utilizatorului curent * Configurați ca scriptul de backup de mai sus să ruleze o dată la 10 minute. == Recapitulare == * 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''.