25.05.2012

Bash - odd or even


echo -n "Enter numnber : "
read n

rem=$(( $n % 2 ))

if [ $rem -eq 0 ]
then
  echo "$n is even number"
else
  echo "$n is odd number"
fi

24.05.2012

FreeBSD dump/restore

dump -L -0 -f- /usr | ssh -2 -C -l remoteuser 10.0.0.1 restore -r -f-
or
on restore side

cd /mnt/disk
nc -l -n -p 6666 | restore -rfv -
on dump side
cat dumpfile | nc remote_ip 6666

11.05.2012

if x even - (x+1)/2*e
if x odd - x/2*e+(e/2)
$ x=0;y=0;for i in {1..15};do x=$(($x+1));y=$(($y+$x));e=$y;echo day $i: $e;done
day 1: 1
day 2: 3
day 3: 6
day 4: 10
day 5: 15
day 6: 21
day 7: 28
day 8: 36
day 9: 45
day 10: 55
day 11: 66
day 12: 78
day 13: 91
day 14: 105
day 15: 120

$ x=0;y=0;for i in {1..347};do x=$(($x+1));y=$(($y+$x));e=$y;echo day $i: $e;done|grep 'day 347'
day 347: 60378
(347+1)/2*347=60378

$ x=0;y=0;for i in {1..347};do x=$(($x+1));y=$(($y+$x));e=$y;echo day $i: $e;done|grep 'day 346'
day 346: 60031
((346/2)*346)+(346/2)=60031

15.03.2012

grep RFC1918

netstat -rn |grep -v ^10\\.|grep -v ^192.168\\.|grep -E ^172.\(1[6-9]\|2\.\|3[0-1]\)\.
or
netstat -rn |grep -v -E \(^10\\.\|^192.168\\.\|^172.\(1[6-9]\|2\.\|3[0-1]\)\.\|\(S\|link\)\)|sort -n
or
netstat -rn |grep -v -E \(^10\\.\|^192.168\\.\|^172.\(1[6-9]\|2\.\|3[0-1]\)\.\)|sort -n

01.03.2012

delete file 'mysql-bin.0000xx'


mysql> flush logs;
will create a brand new mysql-bin.0000xy
mysql> purge binary logs to 'mysql-bin.0000xy';
will purge all logs files before the last.

17.02.2012

bash if expressions


[ -a FILE ] Правда елси FILE существует.
[ -b FILE ] Правда елси FILE существует и это специальный блоковый файл.
[ -c FILE ] Правда елси FILE существует и это специальный знаковый файл.
[ -d FILE ] Правда елси FILE существует и это директория.
[ -e FILE ] Правда елси FILE существует.
[ -f FILE ] Правда елси FILE существует и это регулярный файл.
[ -g FILE ] Правда елси FILE существует и установлен SGID бит.
[ -h FILE ] Правда елси FILE существует и это символический ссылка.
[ -k FILE ] Правда елси FILE существует и второй промежуточный бит округления установлен.
[ -p FILE ] Правда елси FILE существует и это named pipe (FIFO).
[ -r FILE ] Правда елси FILE существует и он доступен на чтение.
[ -s FILE ] Правда елси FILE существует и больше нуля.
[ -u FILE ] Правда елси FILE существует и SUID (set user ID) бит установлен.
[ -w FILE ] Правда елси FILE существует и он доступен на запись.
[ -x FILE ] Правда елси FILE существует и он доступен на исполнение.
[ -O FILE ] Правда елси FILE существует принадлежит существующему пользователю
[ -G FILE ] Правда елси FILE существует принадлежит существующей группе.
[ -L FILE ] Правда елси FILE существует и это символический ссылка.
[ -N FILE ] Правда елси FILE существует и был изменен с тех пор как был прочитан.
[ -S FILE ] Правда елси FILE существует и это сокет.
[ FILE1 -nt FILE2 ] Правда, если файл FILE1 изменялся чаще чем FILE2, или есои FILE1 существует, а FILE2 нет.
[ FILE1 -ot FILE2 ] Правда, если файл FILE1 старше чем FILE2, или FILE1 существует, а FILE2 нет.
[ FILE1 -ef FILE2 ] Правда, если FILE1 и FILE2 относятся к одному устройству и номеру инода.
[ -o OPTIONNAME ] Правда если shell опция "OPTIONNAME" включена.
[ -z STRING ] Правда если длинна "STRING" равна 0.
[ -n STRING ] or [ STRING ] Правда если длинна "STRING" не равна 0.
[ STRING1 == STRING2 ] Правда если выражения эквивалентны.
[ STRING1 != STRING2 ] Правда если выражения не эквивалентны.
[ STRING1 < STRING2 ] Правда если "STRING1" лексикографически упорядоченно до "STRING2".
[ STRING1 > STRING2 ] Правда если "STRING1" лексикографически упорядоченно после "STRING2".
[ ARG1 OP ARG2 ] "OP" это один из следующих параметров -eq, -ne, -lt, -le, -gt or -ge. Эти бинарные арифметические
операторы возвращают результат "правда" если "ARG1" эквивалентен(-eq), не эквивалентен(-ne), меньше чем(-lt),
меньше или эквивалентен(-le), больше чем(-gt), больше или эквивалентно(-ge) к "ARG2".
[ ! EXPR ] правда если выражение EXPR не справедливо.
[ ( EXPR ) ] возвращает значение EXPR. Это может быть использовано для изменения приоритета операторов.
[ EXPR1 -a EXPR2 ] правда, если оба выражения EXPR1 и EXPR2 справедливы.
[ EXPR1 -o EXPR2 ] правда, если хотя бы одно выражение EXPR1 или EXPR2 справедливы.

26.01.2012

Awk : Print Certain Column Ranges


awk ' {
for (i=4; i<=NF; i++)
printf("%s ", $i)
printf("\n") # CR at end of line
} '

28.12.2011

routing table flags

U (route is up)
H (target is a host)
G (use gateway)
R (reinstate route for dynamic routing)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
A (installed by addrconf)
C (cache entry)
! (reject route)

01.12.2011

FreeBSD 8.2 install

portsnap fetch extract
cd /usr/ports/ports-mgmt/portupgrade
make && make install
ee /etc/make.conf
############################

WITHOUT_LINUXTHREADS=yes
NO_INET6=true
WITHOUT_X11=YES

#kernel
KERNCONF=MYCONF
#update
SUP_UPDATE=
SUP= /usr/bin/csup
SUPFLAGS= -g -L 2 -z
SUPHOST= cvsup4.ru.FreeBSD.org
SUPFILE= /usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile
DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile

WITHOUT_DICT="yes"
WITHOUT_GAMES="yes"
WITHOUT_HTML="yes"
WITHOUT_INET6="yes"
WITHOUT_INET6_SUPPORT="yes"
WITHOUT_USB="yes"
WITHOUT_X11="yes"
WITHOUT_BLUETOOTH="yes"
NO_BLUETOOTH="yes"
WITHOUT_ATM="yes"
WITHOUT_IPX="yes"
WITHOUT_CDDL="yes"
WITHOUT_FLOPPY="yes"
WITHOUT_INET6="yes"
WITHOUT_NCP="yes"
WITHOUT_NDIS="yes"

############################
#pkg_add cvsup-without-gui
#cd /usr/src && make update

#mkdir /root/kernels && ee /root/kernels/BSDRASsrv
#ln -s /root/kernels/BSDRASsrv

#make -j4 buildworld

#make buildkernel
#make installkernel
#reboot
(booting in single mode 4)
#mount -u /
#mount -a
#cd /usr/src && make installworld
#reboot

#/usr/local/sbin/portinstall -cCrR subversion
#/usr/local/sbin/portinstall -cCrR bash screen
#ee .bashrc
export PS1='\[\e[1;31m\][\u@\h \W]\$\[\e[0m\] '
export TERM=linux
alias ls='ls -GAh'
alias ll='ls -l'
alias grep='grep --color'
alias fgrep='fgrep --color'
#ee .screenrc
vbell off
defscrollback 5000
hardstatus alwayslastline
hardstatus string '%{= kG}%-Lw%{= kW}%50> %n*%f %t%{= kG}%+Lw%< %{= kG}%-=%D %m/%d/%y | %C:%s %A | %1`%{-}'
screen -t main
scselect 0
#pw usermod root -s /usr/local/bin/bash



23.11.2011

graphic without perl


# for i in 2 12 56 2 4; do x=1; while [ $x -le $i ];do echo -n .;x=$(( $x + 1 )) ;done; echo ; done  
..
............
........................................................
..
....

simple graphic

for i in 2 12 56 2 4; do echo $i|perl -e 'while (<>) { print "."x $_ . "\n"; }'; done

..
............
........................................................
..
....

Sort on multiple fields


$ cat quota
 bob 1000
 an 1000
 chad 1000
 don 1500
 eric 5000
 fred 2000

 $ sort -k2n,2 -k1,1 quota
 an 1000
 bob 1000
 chad 1000
 don 1500
 fred 2000
 eric 5000

cisco acces-list filter

grep denied cisco_security.log |grep 2082|grep 192.168.192.11 |awk '{print $18}'|sed 's/(.*//g'|sort|uniq -c|sort -g   

one linersync a slave that is facing duplicate entry errors.

while [ 1 ]; do if [ `mysql -u root -e "show slave status \G;" | grep "Duplicate entry" | wc -l` -eq 1 ] ; then mysql -u root -e “stop slave; set global sql_slave_skip_counter=1; start slave;”; fi; sleep 1; mysql -u root -e “show slave status\G”; done

22.11.2011

сложение HEX в BASH

echo $((0x8B4513 + 0x1))|xargs printf "%X\n"

27.07.2010

дыбры дыбра

Ловлю я бабочек как старый Хемуль, дурак какой то я наверно.

01.04.2010

Directory list in wiki format

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^\/]*\//-/g' -e
's/\(-\)\([a-zA-Z].*$\)/\1 \*\2\*/'

11.03.2010

make alias,mail,pass csv from mail list

for i in `sed 's/\(^.*\)\@\(.*$\)/\1,\1@\2/g' newKey.csv` ; do echo ${i},`head /dev/urandom | uuencode -m - | sed -n 2p | cut -c1-${1:-6}` ; done

21.01.2010

Find and destroy Oracle TX locks

select username, SYS.v_$lock.sid,lmode,request from SYS.v_$lock,SYS.v_$session
where SYS.v_$lock.type='TX'and SYS.v_$lock.sid=SYS.v_$session.sid;
select serial# from SYS.v_$session where SID = '336'
alter system kill session '336,7263'