2015年4月3日金曜日

shell上での並列処理


シェルでのジョブの並列実行 sleepを同時起動し、待ち合わせを行う

sleep 10 &
pid_0=$!
sleep 10 &
pid_1=$!

wait $pid_0
wait $pid_1


シェルでのジョブの並列実行の繰り返し sleepを同時起動し、待ち合わせを行うことを10回繰り返す
for i in `seq 1 10`
do
  echo $i
  sleep 10 &
  pid_0=$!
  sleep 10 &
  pid_1=$!
 
  wait $pid_0
  wait $pid_1
 
done


2015年3月26日木曜日

SSL証明書の作成


よく作るけど、作るたびに調べなおすのでメモ書き。

2048bitのKEY作成
$ openssl genrsa -des3 -out secure.userdomain.com.key 2048
sha256でCSR作成
$ openssl req -new -sha256 -key secure.userdomain.com.key -out secure.userdomain.com.csr
KEYをバックアップ
$ cp secure.userdomain.com.key secure.userdomain.com.key.org
KEYのパスワード設定。これでWEBサーバー起動時にパスワード聞かれずに済む。
$ openssl rsa -in secure.userdomain.com.key -out secure.userdomain.com.key
CRTはどこかのサイトで認証してもら。rapidsslがやすくて後払いで便利

centosからwindowsにリモートログインし、コマンド実行



# wget http://sourceforge.net/projects/winexe/files/latest/download
# tar zxvf winexe-1.00.tar.gz
# cd winexe-1.00/source4/
# ./autogen.sh
# ./configure
# make
# make install

例)centosからwindowsにログインし、vbscriptを実行
$ /usr/local/samba/bin/winexe -U WINUSER%WINPASSWORD //SERVER "cmd.exe /C cd C:\WORKDIR & cscript WORK.vbs" | iconv -f SJIS -t UTF-8



sshでパスワード自動入力

# wget http://sourceforge.net/projects/sshpass/files/latest/download
# tar zxvf sshpass-1.05.tar.gz
# cd sshpass-1.05
# ./configure
# make
# make install

例)sshで別サーバーのプロセス取得
$ sshpass -pPASSWORD ssh USER@SERVER ps ax
例)ファイル転送
$ sshpass -pPASSWORD scp -o StrictHostKeyChecking=no /tmp/test.txt USER@SERVER:/tmp/

/home/USER/.bash_profileに下記追加
alias sshpass='/usr/local/bin/sshpass -pPASSWORD ssh '

使用例)
$ sshpass SERVER

2014年12月25日木曜日

MySQLのテーブル一覧を表示する

忘れがちなため、メモ。

MySQL でデータベースに存在するテーブルの一覧を表示するには、
SQL の SHOW 文を使用します。
> SHOW TABLES FROM データベース名

(参考サイト)
テーブルの一覧を表示する
http://mysql.javarou.com/dat/000393.html

2014年12月9日火曜日

EXCELの日付の差分の求め方


特によく使用するのは、こちら。
=(B2-A2)*1440   2 つの時刻の差を分単位で求めます。
=(B2-A2)*86400  2 つの時刻の差を秒単位で求めます。


開始と終了時刻の差分など、使用する機会が最近多い。


参考サイト : 2 つの時刻間の差分を計算する
http://office.microsoft.com/ja-jp/excel-help/HP010070468.aspx

2014年12月2日火曜日

既存テーブルのオートナンバーの割り振り方(主キー以外をキーにする場合)

SQLServerでオートナンバー列を新たに設定するが、
主キーの順番に自動で割り振られるだけ。

今回の主キー以外の順番(登録日時順とか)で割り振りたい場合には、向いていない。

そこで以下の方法を検討した。


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

1)  ワーク用テーブル「HogeA」を作成する。
※ InsDate(データ登録日時)の昇順で、番号を割り振る。

SELECT 
 PrimaryNo
,InsDate
,ROW_NUMBER() OVER(ORDER BY InsDate ASC) AS sequence
INTO HogeA
FROM MasterA
;


2) 「MasterA」に、デザインからオートナンバー列「sequence(BigInt)」を追加する。
※ このままでは番号は主キーの順番になるだけなので注意!


3) 「MasterA」に、オートナンバー列「sequence」のidentityを「いいえ」にする。


4) 「MasterA」と 1)で作成したテーブルをJOINさせて、再度割り当てる。

UPDATE MasterA
SET MasterA.sequence = HogeA.sequence
FROM MasterA
INNER JOIN HogeA 
 ON MasterA.PrimaryNo = HogeA.PrimaryNo
;


5) 「MasterA」に、オートナンバー列「sequence」のidentityを「はい」に戻す。

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑


途中のデータを削除しても、
INSERTする際にはきちんと次の値として採番してくれているため、
問題ないと思われる。


以上