inca un pseudo-oneliner

Bash, de data asta:
function aptlist() (echo $1 ; echo ========== ; ssh -lroot $1 aptitude search ~i | sort )  ; function apt_diff () ( diff -u <(aptlist $1) <(aptlist $2) ) ; apt_diff host1 host2 | less

... da, stiu... Totusi, sunt cateva tehnici care s-ar putea dovedi utile altcuiva in contexte mai serioase, asa ca, explicatii:

  • functia aptlist scoate lista sortata de pachete de pe masina din primul argument, via ssh ca root (e nevoie de ssh fara parola, cu cheie, altfel va fi cam enervant cu parolele). Pune niste headere pentru ca mereu uit care e care in diff :) . Sortul e necesar ca sa fac diff, dar il fac inainte sa pun headerul ca sa nu se amestece.
  • functia apt_diff ia doua argumente (hostname-uri), ruleaza functia dinainte pe ele si ruleaza diff (via command substitution, or sa apara ca nume de fisiere /dev/fd/62 si /dev/fd/63). Inainte sa termine salveaza outputul via tee intr-un cache in /tmp (e destul de costisitoare operatia si n-am chef sa o rulez de mai multe ori decat e nevoie)
  • la sfarsit apelez apt_diff cu cele doua hosturi pe care vreau sa le compar si bag outputul intr-un pager.

Comments are closed.