Pomoc oko shell skripte, ili jedne komande

Teme koje se tiču programiranja

Moderator: Urednik

Post Reply

Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 78
Joined: 01 Feb 2018, 11:37

Post Napisano: 16 Mar 2020, 14:38


Zdravo svima, malkice da ozivim ovaj sektor :)

Ovako, interesuje me nesto oko cega se maltretiram vec duze vreme. Posto odrzavam Zimbra mail server u okruzenju od 350 zaposlenih, stvaraju mi se problemi, a ponavljam beskonacno komande, i znam da postoji kraci put da mi olaksa posao, ali ne ide mi da pronadjem adekvatnu komandu.
Evo da objasnim problem, zakljucavaju se korisnicki nalozi, ja ih otkljucavam preko terminala (ili GUI-a), ali to sve ide peske jedan po jedan, a ja trazim komandu sa kojom cu otkljucati SVE odjednom, sa filterom samo onih koji su zakljucani.

Regularna komanda ide ovako, za status, ko je zakljucan:
zmaccts | grep lockout

Korisnik koji je zakljucan ima status "lockout". Komada koja glasi da se taj korisnik otkljuca:
zmprov ma korisnik@mejl.com zimbraAccountStatus active

Posle ove komande je otljucan. I tako redom. E sad, ja sam probao ovako nesto i to naravno nije uspelo:
zmprov ma *@mejl.com zimbraAccountStatus active

Izbaci gresku da ovaj mejl account ne postoji. Zanima me sta bih jos mogao da probam od argumenata/navodnika, uz *(zvezdicu)?
OS je CentOS 7, nije preterano bitno, zimbra je 8.7.0.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 16 Mar 2020, 20:39


Generalno potrebno je filitirati izlaz zmaccts da sadrži samo mejlove. Onda se taj izlaz može gurnuti u for petlju koja izvršava odgovarajuće zmprov linije.

Recimo:

Code: Select all

for adresa in $(zmaccts | grep lockout | cut -f 2 -d ' '); do zmprov ma $adresa zimbraAccountStatus active; done
S time da je ovo samo predlog. Ne znam kakav izlaz daje zmaccts, niti sam u mogućnosti da testiram na nekoj instalaciji Zimbre. Takođe, bez probe nisam siguran da li negde treba neki dodatni navodnik. :)

Izmena:
Uzgred, ovde preporučuju da koristiš "zmprov -l sa "(zimbraAccountStatus=active)" umesto zmaccts zato što zmaccts u listanju skraćuje korisnička imena koja su duža od 36 slova.



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 78
Joined: 01 Feb 2018, 11:37

Post Napisano: 18 Mar 2020, 13:51


Ok, mogu da koristim zmprov -l sa, izlistaju mi se sve adrese i sa filterom za "lockout", ali problem je kada hocu da otkljucam zakljucane, ne mogu da to uradim za vise naloga odjednom, vec moram peske to, jedan po jedan, jer kada mu stavim umesto "adresa" - *@mail.rs, on mi kaze da ta adresa ne postoji. Na ovom linku je ok resenje, ali za jednu adresu u komandi. Trazio sam po netu neko resenje za skriptu, nisam uspeo da nadjem za ovo. Svuda sve pise za samo po jednu adresu...
Ajde za pocetak probacu tvoju liniju za jednog korisnika da li radi, pa javljam, pa posle ako nije problem da zajedno probamo kako bi moglo sa zvezdicom.



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 20 Mar 2020, 22:32


Ono što sam ti napisao je više postupak kako sam da to postigneš nego tačno šta da ukucaš. Nije preporučljivo da samo uradiš copy/paste pošto nije u pitanju "gotova komanda". :)

Shell "for" komanda u gornjem primeru je petlja koja se izvršava više puta dok se ne ispuni neki uslov. Pomoću nje je moguće izvršiti promenu na svim adresama odjednom.

Ono... Ako ti "Bash" nije baš blizak, overi neki od tutorijala. Na srpskom i ostalim balkanskim jezicima je ograničen izbor literature. Ali recimo...

Ovaj tutorijal je dostupan u hrvatskom prevodu. Iako original izgleda dosta ažurniji od prevoda. I bolje formatiran. Ali nadam se da može da i prevod može da posluži.

A ako ti engleski ne predstavlja problem, preporučujem Bash Guide for Beginners.

Komanda koje bi bile od posebnog značaja u kreiranju skripte su, pored Zimbrinih komandi, i komande "for" i "cut". Naravno bitno je pre toga da poznaješ posebni znak za preusmeravanje izlaza jedne komande u drugu: "|" (na engl. "pipe", kod nas sam viđao da ga zovu "cevovod").



Administrator
Administrator
offline
User avatar

Posts: 4590
Joined: 04 Feb 2011, 20:32
Location: Beograd
Contact:

Post Napisano: 20 Mar 2020, 22:38


imarkovic wrote:
18 Mar 2020, 13:51
Ajde za pocetak probacu tvoju liniju za jednog korisnika da li radi, pa javljam
Ko što rekoh iznad. Ne radi copy/paste nečega što ne znaš šta radi. :) Ono nije bila gotova linija koju jednostavno možeš isprobati u terminalu. Samo predlog kako da to postigneš ako dovoljno poznaješ Bash.
pa posle ako nije problem da zajedno probamo kako bi moglo sa zvezdicom.
Zaboravi na zvezdicu. To ti neće raditi. :)



Poznata ličnost
Poznata ličnost
offline
User avatar

Posts: 78
Joined: 01 Feb 2018, 11:37

Post Napisano: 18 Apr 2020, 18:34


Da da, kapiram, probao sam nekoliko stvari, nije to to sta sam hteo, ali nema veze, odustao sam za sada, zbog toga sto mi se menjaju obaveze na poslu, necu se vise baviti Zimbrom :). Hvala, bocke, i sve najbolje!


Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests