2016年7月26日 星期二

MySQL 取得 trigger 作用的 table

SELECT EVENT_OBJECT_TABLE 
INTO @table_name
FROM INFORMATION_SCHEMA.TRIGGERS
WHERE TRIGGER_NAME = 'trigger_name';

MySQL 動態 SQL 範例

SET @tab = 'a';
SET @s = CONCAT('select * from ', @tab, ' where ID = 1');

PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;

2016年7月22日 星期五

bash lock file

echo "
exec  3<>\$0
while true; do sleep 1; done " >lock.sh


chmod a+x lock.sh


執行方式
lock.sh  不能透過 bash lock.sh

應用
同時只能執行一次的 script

2016年7月20日 星期三

bash ip int 轉換

function itoa { :;
echo -n $(($(($(($((${1}/256))/256))/256))%256)).;
echo -n $(($(($((${1}/256))/256))%256)).;
echo -n $(($((${1}/256))%256)).;
echo $((${1}%256));
};


itoa 3232235777

function atoi { :;
IPNUM=0;j=3;OIFS=$IFS;IFS='.';
for i in $1; do :;IPNUM=$(($IPNUM + $i*256**$j));j=$(($j-1));[ $j -lt 0 ] && break;done;
IFS=$OIFS;
echo $IPNUM;
};

atoi 192.168.1.1

2016年7月11日 星期一

bash whiptail範例

#!/bin/bash

DIALOG=/usr/bin/whiptail;
exec 3>&1;
a=$($DIALOG --inputbox "input yes or no" 10 40 2>&1 1>&3)

$DIALOG --msgbox $a 10 40
exec 3>&-

bash eval摘要

a=b
b=1234
eval echo \$$a

2016年7月5日 星期二

bash tcp 傳輸檔案

接收資料
nc -l -p 2100 |gzip -d|cpio -i

發送資料
exec 3<>/dev/tcp/[dest host ip]/2100
find . |cpio -o |gzip  >&3
exec 3<&-
exec 3>&-


GNU bash, version 3.2.25(1)-release

CentOS 7更改 hostname

使用 hostnamectl 指令

2016年7月2日 星期六

2016年7月1日 星期五

bash #檢查linux 核心是否大於等於 2.6.32 (devtmpfs 收錄版本)

#檢查是否大於等於 2.6.32 (devtmpfs 收錄版本)

:;function fun_is_kernel2.6.32 { :;
  [ "$1" = "" ] && return 1;

  local k=${1%-*};OIFS=$IFS;IFS='.';k=($k);IFS=$OIFS;

[ "${k[0]}" -gt 2 ] && return 0;[ "${k[0]}" -lt 2 ] && return 1;
[ "${k[1]}" = '' ] && return 1;[ "${k[1]}" -lt 6 ] && return 1;[ "${k[1]}" -gt 6 ] && return 0;
[ "${k[2]}" = '' ] && return 1;[ "${k[2]}" -lt 32 ] && return 1;
  return 0;
};