=head1 Tajne Perla za administratore (DBA/sysadmin) Perl za administratore baza i sustava Ovo predavanje pokazati će kako uspješno natjerati perl da naprati ono što pomislite (Do What I Mean) ako ste DBA ili sistem administrator. =head1 Regex =head1 SQL::Translator =head1 DBD::Proxy =head1 DBD::RAM dbd_ram*.pl =head1 DBD::AnyData use DBI; my $dbh = DBI->connect('dbi:AnyData(RaiseError=>1):'); # SELECT DATA FROM A PASSWD FILE # $dbh->func( 'users', 'Passwd', '/etc/passwd', 'ad_catalog'); my $sth = $dbh->prepare("SELECT username,homedir,GID FROM users'); # INSERT A NEW ROW INTO A CSV FILE # $dbh->func( 'cars', 'CSV', 'cars.csv', 'ad_catalog'); $dbh->do("INSERT INTO cars VALUES ('Honda','Odyssey')"); # READ A REMOTE XML FILE AND PRINT IT AS AN HTML TABLE # print $dbh->func( 'XML', $url, 'HTMLtable', 'ad_convert'); # CONVERT A MYSQL DATABASE INTO XML AND SAVE IT IN A NEW FILE # $dbh->func( 'DBI', $mysql_dbh, 'XML', 'data.xml', 'ad_convert'); # CREATE AND ACCESS A VIEW CONTAINING DATA FROM AN ORACLE DATABASE # AND A TAB DELIMITED FILE # $dbh->func( 'combo', 'DBI', $oracle_dbh, 'ad_import'); $dbh->func( 'combo', 'Tab', 'data.tab', 'ad_import'); my $sth = $dbh->prepare("SELECT * FROM combo"); # CONVERT my $dbh = DBI->connect('dbi:AnyData:(RaiseError=>1)'); $dbh->func( 'DBI', DBI->connect('dbi:mysql:database=test:(RaiseError=>1)'), 'XML', 'cars.xml', {table_name=>'cars'}, 'ad_convert'); =head1 DBD::Google =head2 Treat Google as a datasource for DBI use DBI; my $dbh = DBI->connect('dbi:Google:', $KEY); my $sth = $dbh->prepare(qq[ SELECT title, URL, snippet FROM google WHERE q = 'perl' ]); while (my $r = $sth->fetchrow_hashref) { print $r->{'title'}, " [", $r->{'URL'}, "]\n", $r->{'snippet'}, "\n"; } =head1 bonus Socks5 log: $ zgrep -i socks /var/log/daemon* | grep "Established" | cut -d\( -f2 | cut -d: -f1 | groupby.pl | sum.pl sendsms stats total messages: $ zgrep SMS smsd.log* | cut -d: -f2 | groupby.pl 1 | sort -k2 | sum.pl count number of ftp connectiona per IP number: $ grep in.ftpd /var/log/daemon.log | groupby.pl 8 | sort -rn | sum.pl PostgreSQL database sizes $ psql -A -l -t -F: | grep -v template0 | cut -d: -f1 | xargs -i psql -t -A -F" " -c "select sum(relpages),'{}' from pg_class" {} | sort -n -r | sum.pl