mysql

mysql

  • Show Grants:

    mysql --skip-column-names -e "select distinct concat('show grants for''',user,'''@''',host,''';') as query from mysql.user" | \
    mysql --skip-column-names | \
    perl -ne 'next if m/(?:replica|root)/; s/$/;/; print; END {print "flush privileges;\n" }'
    

    or use maatkit

  • Show Users:

    select user,host from mysql.user;   
    
perl

perl

  • Debugging:

    $| = 1;
    
    
    Wenn diese Variable auf einen Wert ungleich 0 gesetzt wird, werden Ausgaben mit print nicht gepuffert, sondern erfolgen in dem Augenblick, wo die print-Anweisung interpretiert wird. Normalerweise puffert Perl Ausgaben, um sie dann blockweise auszugeben.
    
  • Base64 encoding (e.g. smtp auth)

    perl -MMIME::Base64 -e print encode_base64("text"); 
    
Posted
string manipulation

strings

  • feature

      $ greedy match     : 1#2#3#4 -> 1#2#3
      $ non greedy match : 1#2#3#4 -> 1
      $ last column      : 1#2#3#4 -> 4
              $ last 3 line
              $ first 3 line
              $ all but first 3 lines
              $ all but last 3 lines
    
  • sed

      $ sed -e 's/\(.*\)#.*/\1/'
      $ sed -e 's/\([^#]*\)#.*/\1/'
      $ sed -e 's/.*#//'
    
  • perl

      $ perl -pe 's/(.*)#.*/\1/'
      $ perl -pe 's/(.*?)#.*/\1/'a
      $ perl -pe 's/.*#(.*)/\1/'
      $ perl -lane 'print $F[-1]' (alt. last column)
    
  • ruby

      $ ruby -pe "gsub(/(.*)#.*/,'\1')"
      $ ruby -pe "gsub(/(.*?)#.*/,'\1')"
      $ ruby -pe "gsub(/.*#(.*)/,'\1')"
    
  • awk

      $ awk -F"#" '{{for (i=1; i<NF-1; i++) printf $i "#"} print $(NF-1)}'
      $ awk -F"#" '{print $1}'
      $ awk -F"#" '{print $NF}'
    
  • bash

      $ ???
      $ ???
      $  while IFS="#" read -r -a line; do
          nb=${#line[@]}
          echo ${line[$((nb - 1))]}
         done
    
  • other tools

      $ cut -F# -f1
      $ ???
      $ rev | cut -F# -f1 | rev
    
mysql

Show Grants:

mysql --skip-column-names -e "select distinct concat('show grants for''',user,'''@''',host,''';') as query from mysql.user" | \
mysql --skip-column-names | \
perl -ne 'next if m/(?:monit|replica|root|ronie)/; s/$/;/; print; END {print "flush privileges;\n" }'}}

Show Users:

select user,host from mysql.user;

all pages tagged perl

mysql
Posted
perl
Posted
string manipulation
Posted
mysql
Posted