Monthly Archives: 11月 2013

bash shell if構文

#!/bin/bash
#数式はtrueなら、then部分を実行する
#もし終了はifなら fiで書く
#if
# if …;then
# …
# elif …;then
# …
# else
# …
# fi
#通常で [ ] 条件でテストする、角形かっこ前後空欄を保存する
#復習してすぐ割り当て=符号で前後に空欄があることができない。
# [ -f”somefile” ] :一つのファイルかどうか
# [ -x”/bin/ls” ] : /bin/ls実行権限が存在するかどうか判断する
# [ -n”$var” ] : $var変数は値があるかどうか
# [ “$a”=”$b” ] : $aと$b等しいかどうか

if [ ${SHELL}=”/bin/bash” ] ;then
echo “your login shell is the bash (boure again shell)”
else
echo “your login is not bash but ${SHELL}”
fi

すべてのドライバのドライバ名を獲得する

@echo off
for /f “delims=ドライバ:\ ” %%a in (‘fsutil fsinfo drives^|more’) do echo %%a:
pause

nginxログ分割とmysqlバックアップ

crontab タスク
nginx ログ分割
mysqlバックアップ

ファイル1:cut_nginx_log.sh
#!/bin/bash
#nginxログファイルを分割する
#昨日の期日で命名する
logs_path=”/var/www/log”
date=$(date -d “yesterday” +”%Y-%m-%d”)

#ログファイルを命名する
mv ${logs_path}/access.log ${logs_path}/access_$date.log

#ログファイルを再度コンパイル、nginx通知
#nginxで新しいファイルに内容を書きこむ
kill -USR1 cat /var/nginx/nginx.pid

ファイル2:mysql_back.sh

#!/bin/sh
#mysql バックアップ作成されたsqlファイルを圧縮する
#7日前に作ったバックアップを削除する

#
backupdir=/opt/cpfxs/mysqlbak
mysqlpath=/usr/local/mysql/bin/

time= date +%Y%m%d

$mysqlpath/mysqldump -h127.0.0.1 -uroot -pluobo mydb | gzip > $backupdir/mydb$time.sql.gz

#一週間前の内容を削除する
find $backupdir -name “mydb*.sql.gz” -type f -mtime +7 -exec rm {} \; > /dev/null 2>&1

PowershellでMySQLに接続する

#[void][System.Reflection.Assembly]::LoadWithPartialName(“MySql.Data”)
[void][system.Reflection.Assembly]::LoadFrom(“C:\Program Files (x86)\MySQL\MySQL Connector Net 6.5.4\Assemblies\v4.0\MySql.Data.dll”)
$Server=”127.0.0.1″
$Database=”test”
$user=”admin”
$Password=”xxx”
$charset=”utf8″
$connectionString = “server=$Server;uid=$user;pwd=$Password;database=$Database;charset=$charset”
$connection = New-Object MySql.Data.MySqlClient.MySqlConnection
$connection.ConnectionString = $connectionString
$sql= “SELECT * FROM product_details”
$command = New-Object MySql.Data.MySqlClient.MySqlCommand($sql, $connection)
$dataAdapter = New-Object MySql.Data.MySqlClient.MySqlDataAdapter($command)
$ds = New-Object System.Data.DataSet
$recordCount = $dataAdapter.Fill($ds)
Write-Host ‘総計’ $recordCount ‘個記録がある’

#取得データの確認
Write-Host ‘$ds.Tables’
$ds.Tables

#カラムで調べる
Write-Host ‘カラム名下記:’
foreach($table in $ds.Tables)
{
foreach($column in $table.Columns)
{
$column.ColumnName
}
}

#すべてのデータの検索
Write-Host ‘データの検索:’
foreach($table in $ds.Tables)
{
foreach($row in $table.Rows)
{
$curRow = ”
foreach ($column in $table.Columns)
{
$curRow += [string]$row[$column] + ‘ ‘
}
$curRow
}
}

Write-Host ‘Array方法でアクセス:’
#Array方法で列名を取得
$ds.Tables[0].columns[0].columnname
#Array方法でデータを索引する
$ds.Tables[0].rows[0][1]

急速にLANボードの構成情報と外部IPを調べる

OS:linux

#!/bin/bash

function err(){
if [ $? == 1 ];then
echo ” **”
fi
}

if [ $# -eq 0 ]; then
defnet=”wlan0″
else
defnet=$@
fi

for i in $defnet
do
echo -e “\033[42;37;5m $i info: \033[0m”
echo -n “IPv4 address: ”
ifconfig $i 2>/dev/null| egrep -o “inet addr:[^ ]*” | grep -o “[0-9.]*”
err
echo -n “IPv6 address: ”
ifconfig $i 2>/dev/null| egrep -o “inet6 addr: [^ ]*” | cut -d ” ” -f 3| grep -o “[a-z0-9:/]*”
err
echo -n “MAC address: ”
ifconfig $i 2>/dev/null| egrep -o “addr .*” | grep -o “[A-Z0-9:]*”
err
echo -n “subnet Mask: ”
ifconfig $i 2>/dev/null| egrep -o “Mask:.*” | grep -o “[0-9.]*”
err
echo -n “Broadcast: ”
ifconfig $i 2>/dev/null| egrep -o “Bcast:[^ ]*” | grep -o “[0-9.]*”
err
echo -n “Receive Bytes: ”
ifconfig $i 2>/dev/null| egrep -o ‘\([^()]*\)’|head -1
err
echo -n “Send Bytes: ”
ifconfig $i 2>/dev/null| egrep -o ‘\([^()]*\)’|tail -1
err
echo -e “\033[44;37;5m $i Extra information:\033[0m”
echo -n “外部IP: ”
curl ifconfig.me
err
echo -e
done
exit

10個 Linux コマンド

history | awk ‘{a[$2]++}END{for(i in a){print a[i] ” ” i}}’ | sort -rn | head
2141 git
967 vagrant
702 cd
701 gvim
618 ssh
552 fab
444 ls
360 vim
318 rm
223 mv

サーバー運行するかどうか検査、測定する

#!/bin/sh
pingcmd(){
PRE=”server $1 Ping $2″
MAILADD=”XX@yahoo.co.jp”

ping -w 1 -c 1 $2>/dev/null
ret=$?
if [ $ret -eq 0 ]

then
echo “$PRE OKn” | mail -s “$PRE status” $MAILADD

else
echo “$PRE ERRORn” | mail -s “$PRE status” $MAILADD
fi
return 0
}

mainserver=”192.168.1.3″
slaveserver=”192.168.1.2″
pingcmd $mainserver $slaveserver

JBOSS & Tomcat再起動

linux環境でJBOSSとTomcatが再起動する。

#!/bin/bash

#this shell will be used to restart Jboss & tomcat

runuser=whoami

workpath=$HOME/portal

echo “=============THE PROCESS JBOSS & TOMCAT WILL BE KILLED FIRST ================”

stop()
{
echo “==============CHECKING THE PID FOR JBOSS AND TOMCAT ================”

ps -ef|grep jboss|grep $runuser|grep -v grep|grep -v tomcat |awk ‘ { print $2 } ‘ |while read JPID
do

#if [ ! -z $JPID ];then
echo “========JBOSS IS RUNING AND THE PID IS : $JPID ,WILL BE KILLED NOW =================”
kill -9 $JPID
#fi

done
TPID=ps -ef|grep tomcat|grep $runuser|grep -v grep|awk ' { print $2 } '

if [ ! -z $TPID ];then
echo “========TOMCAT IS RUNING AND THE PID IS : $TPID ,WILL BE KILLED NOW ================”
kill -9 $TPID
fi
}

start()
{

echo “============== JBOSS AND TOMCAT WILL BE RESTART NOW ===================”
cd $workpath

nohup ./1-jboss.sh &

echo “STARTING JBOSS …. ….”
sleep 5

echo “STARTING TOMCAT … … ”
nohup ./2-tomcat.sh &

}

#===================================
# THE MAIN FUNCTION
#===================================

stop
sleep 1
start
exit 0

nagiosはcpuのプラグインを検査、測定する

nagiosでcpuのプラグインを検査する。

@echo off
rem 現在batの役割

echo ==================begin========================

cls
SET NGINX_PATH=D:
SET NGINX_DIR=D:\nginx-1.5.2\
color 0a
TITLE Nginx 管理プログラム Power By Ants (http://leleroyn.cnblogs.com)

CLS

ECHO.
ECHO. * * Nginx 管理プログラムPower By Ants (http://leleroyn.cnblogs.com) *
ECHO. * update by lyg 2013-03-13 *
ECHO.

:MENU

ECHO. * nginx プロセスlist *
tasklist|findstr /i “nginx.exe”

ECHO.
ECHO. [1] Nginx起動
ECHO. [2] Nginxシャットダウン
ECHO. [3] Nginx再起動
ECHO. [4] ログアウト
ECHO.

ECHO.項目の番号を入力してください:
set /p ID=
IF “%id%”==”1” GOTO start
IF “%id%”==”2” GOTO stop
IF “%id%”==”3” GOTO restart
IF “%id%”==”4” EXIT
PAUSE

:start
call :startNginx
GOTO MENU

:stop
call :shutdownNginx
GOTO MENU

:restart
call :shutdownNginx
call :startNginx
GOTO MENU

:shutdownNginx
ECHO.
ECHO.Nginxシャットダウン……
taskkill /F /IM nginx.exe > nul
ECHO.OK,すべてnginxプロセスを殺す
goto :eof

:startNginx
ECHO.
ECHO.Nginx起動……
IF NOT EXIST “%NGINX_DIR%nginx.exe” ECHO “%NGINX_DIR%nginx.exe”存在しない

%NGINX_PATH%

cd “%NGINX_DIR%”

IF EXIST “%NGINX_DIR%nginx.exe” (
echo “start ” nginx.exe”
start “” nginx.exe
)
ECHO.OK
goto :eof

Windows環境でnginx起動、シャットダウンの管理

@echo off
rem 現在batの役割

echo ==================begin========================

cls
SET NGINX_PATH=D:
SET NGINX_DIR=D:\nginx-1.5.2\
color 0a
TITLE Nginx 管理プログラム Power By Ants (http://leleroyn.cnblogs.com)

CLS

ECHO.
ECHO. * * Nginx 管理プログラムPower By Ants (http://leleroyn.cnblogs.com) *
ECHO. * update by lyg 2013-03-13 *
ECHO.

:MENU

ECHO. * nginx プロセスlist *
tasklist|findstr /i “nginx.exe”

ECHO.
ECHO. [1] Nginx起動
ECHO. [2] Nginxシャットダウン
ECHO. [3] Nginx再起動
ECHO. [4] ログアウト
ECHO.

ECHO.項目の番号を入力してください:
set /p ID=
IF “%id%”==”1” GOTO start
IF “%id%”==”2” GOTO stop
IF “%id%”==”3” GOTO restart
IF “%id%”==”4” EXIT
PAUSE

:start
call :startNginx
GOTO MENU

:stop
call :shutdownNginx
GOTO MENU

:restart
call :shutdownNginx
call :startNginx
GOTO MENU

:shutdownNginx
ECHO.
ECHO.Nginxシャットダウン……
taskkill /F /IM nginx.exe > nul
ECHO.OK,すべてnginxプロセスを殺す
goto :eof

:startNginx
ECHO.
ECHO.Nginx起動……
IF NOT EXIST “%NGINX_DIR%nginx.exe” ECHO “%NGINX_DIR%nginx.exe”存在しない

%NGINX_PATH%

cd “%NGINX_DIR%”

IF EXIST “%NGINX_DIR%nginx.exe” (
echo “start ” nginx.exe”
start “” nginx.exe
)
ECHO.OK
goto :eof