<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>とあるwebエンジニアの気ままな備忘録</title>
<link>https://ameblo.jp/hoosys/</link>
<atom:link href="https://rssblog.ameba.jp/hoosys/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>技術的なことをメモ程度にまとめてます。自分が後から見てわかればいいやーという感じなので、意味不明になってるかもしれませんが。。それでも間違えていることを書いていたら突っ込みいれてくださると助かります！</description>
<language>ja</language>
<item>
<title>svn の commit comment (log mesage)から変更内容を取得する</title>
<description>
<![CDATA[ プロジェクト管理ツールに redmine&nbsp;<br>バージョン管理ツールに svn<br>を使用しています。<br><br>redmine と svn は連携することができ、<br>redmine の該当するチケット番号を svn にコミットする際、入力していることにより、<br>チケットに関連する修正ファイルを redmine 上で確認することができます。<br><br>開発ブランチからリリースブランチへ、該当ファイルをコミットしていく作業が負担になっていましたので、処理を自動化してみました。<br><br>基本的にシェルスクリプトによるコマンド実行ですが、<br>commit comment から 該当のファイルを抽出する際、　PHP　による処理も行っています。<br>以下、コードです。<br><br>まだまだ未熟者ですので、厳しい突っ込みお待ちしております！<br><br>-----------------------------------------------------------------<br>シェルスクリプト<br>-----------------------------------------------------------------<br><div>#!/bin/sh</div><div><br></div><div>## コンストラクタ</div><div>cd {カレントディレクトリ}</div><div>SVN_DEV="{開発ブランチリポジトリパス}"</div><div>SVN_PRO="{リリースブランチリポジトリパス}"</div><div>DEV_DIR="{開発ブランチ作業コピー}"</div><div>PRO_DIR="{リリースブランチ作業コピー}"</div><div>LOGFILE="{ログファイルパス}"</div><div>XMLFILE="{workファイルパス}"</div><div>LISTFILE="{workファイルパス}"</div><div>MOVEFILE="{workファイルパス}"</div><div>CURDIR=`pwd`</div><div>PHP=`which php`" ${CURDIR}/xml_parser.php"</div><div><br></div><div>## workファイル削除</div><div>if [ -e ${XMLFILE} ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; rm -f ${XMLFILE}</div><div>fi</div><div>if [ -e ${LISTFILE} ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; rm -f ${LISTFILE}</div><div>fi</div><div><br></div><div>## リリースブランチへコミットする対象チケットを決定する</div><div>echo "チケット番号を # を省略して入力してください"</div><div>echo "複数ある場合は 半角スペース で区切って入力してください"</div><div>read ANS</div><div>TICKET=${ANS}</div><div>FIELDS=`echo ${TICKET} | wc -w`</div><div><br></div><div>## 開発ブランチの svn log 結果を xml 形式で吐き出す</div><div>svn log ${SVN_DEV} -v --stop-on-copy --xml &gt; ${XMLFILE}</div><div><br></div><div>for i in `seq 1 ${FIELDS}`</div><div>do</div><div>&nbsp; &nbsp; &nbsp; &nbsp; NO=`echo "${TICKET}" | awk --assign awk_var="$i" '{ print $awk_var }'`</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "================================================"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "チケット番号 : ${NO}"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "================================================"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ${PHP} ${NO}</div><div>done</div><div><br></div><div>## 重複ファイルを削除する</div><div>cat ${LISTFILE} | sort | uniq &gt; ${CURDIR}/sort.log</div><div>rm -f ${LISTFILE}</div><div>cp -p ${CURDIR}/sort.log ${LISTFILE}</div><div>rm -f ${CURDIR}/sort.log</div><div><br></div><div>## 開発ブランチ/リリースブランチの作業コピーを最新にします</div><div>echo "================================================"</div><div>echo "${DEV_DIR} を 最新にします"</div><div>echo "================================================"</div><div>echo "${DEV_DIR}"</div><div>svn revert -R ${DEV_DIR}</div><div>svn up ${DEV_DIR}</div><div>echo "================================================"</div><div>echo "${PRO_DIR} を 最新にします"</div><div>echo "================================================"</div><div>echo "${PRO_DIR}"</div><div>svn st "${PRO_DIR}" |grep '^?'|awk '{print $2}'|xargs rm -rf</div><div>svn revert -R ${PRO_DIR}</div><div>svn up ${PRO_DIR}</div><div><br></div><div>## 対象ファイルをリリースブランチにコミットします</div><div>echo "================================================"</div><div>echo "今回のリリースブランチへのコミット対象一覧"</div><div>echo "================================================"</div><div>cat ${LISTFILE}</div><div>echo "================================================"</div><div>while :</div><div>do</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "上記をコミットしてもよろしいでしょうか?[y/n]"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; read ANS</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if [ "${ANS}" = "y" ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break</div><div>&nbsp; &nbsp; &nbsp; &nbsp; elif [ "${ANS}" = "n" ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "操作は取り消されました"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; exit 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; fi</div><div>done</div><div><br></div><div>## 移動先ディレクトリを定義する</div><div>cat ${LISTFILE} | sed -e "s/\/{開発ブランチ}\//\/{リリースブランチ}\//g" &gt; ${MOVEFILE}</div><div>while read line</div><div>do</div><div>&nbsp; &nbsp; &nbsp; &nbsp; MOVE=`echo ${line} | sed -e "s/\/{開発ブランチ}\//\/{リリースブランチ}\//g"`</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if [ ! -e ${line} ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo "削除開始 : ${MOVE}"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rm -rf ${MOVE}</div><div>&nbsp; &nbsp; &nbsp; &nbsp; fi</div><div>done &lt; ${LISTFILE}</div><div><br></div><div># svn commit を行う</div><div>## svn add 対象がある場合 svn add を実行する</div><div>ADD_NUM=`svn st "${PRO_DIR}" |grep '^?'|awk '{print $2}'| wc -l`</div><div>DEL_NUM=`svn st "${PRO_DIR}" |grep '^!'|awk '{print $2}'| wc -l`</div><div>if [ "${ADD_NUM}" != 0 ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "================================================"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "新規追加ファイルを add します"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "================================================"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; svn st "${PRO_DIR}" |grep '^?'|awk '{print $2}'|xargs svn add</div><div>fi</div><div>if [ "${DEL_NUM}" != 0 ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "================================================"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "削除ファイルを del します"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "================================================"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; svn st "${PRO_DIR}" |grep '^!'|awk '{print $2}'|xargs svn del</div><div>fi</div><div><br></div><div>## コミットコメント作成</div><div>for i in `seq 1 ${FIELDS}`</div><div>do</div><div>&nbsp; &nbsp; &nbsp; &nbsp; NO=`echo "${TICKET}" | awk --assign awk_var="$i" '{ print $awk_var }'`</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if [ `echo ${#REFS}` = 0 ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; REFS="refs\ #${NO}"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; elif [ `echo ${#REFS}` != 0 ]; then</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; REFS="${REFS} refs\ #${NO}"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; fi</div><div>done</div><div><br></div><div>## svn commit 実行</div><div>echo "================================================"</div><div>echo "コミットを行います"</div><div>echo "================================================"</div><div>cd ${PRO_DIR}</div><div>svn commit ./ -m ${REFS}</div><div><br></div><div>echo "================================================"</div><div>echo "処理正常に終了しました"</div><div>echo "================================================"</div><div><br></div><div>exit 0;</div><div>-----------------------------------------------------------------<br><br>-----------------------------------------------------------------<br>PHP<br>-----------------------------------------------------------------<br><div>&lt;?php</div><div><br></div><div>// コンストラクタ</div><div><div>$xmlfile = (__DIR__."/work/svnlog.xml");</div><div>$filename = (__DIR__."/work/xml_parse.log");</div></div><div><br></div><div>// XMLファイルの読込み</div><div>$content=file_get_contents($xmlfile);</div><div>// XMLデータを配列に格納</div><div>$xml_parser=xml_parser_create();</div><div>xml_parse_into_struct($xml_parser,$content,$vals);</div><div>xml_parser_free($xml_parser);</div><div><br></div><div>// 1回のコミット情報を纏める</div><div>$count = count($vals);</div><div>$cnt = 0;</div><div>$array = array();</div><div>for ($i=0; $i &lt; $count; $i ++)</div><div>{</div><div>&nbsp; &nbsp; &nbsp; &nbsp; $array[$cnt][] = $vals[$i];</div><div>&nbsp; &nbsp; &nbsp; &nbsp; // コミット情報の最後の情報は commit comment のため、</div><div>&nbsp; &nbsp; &nbsp; &nbsp; //MSG だった場合は次の配列に格納させる</div><div>&nbsp; &nbsp; &nbsp; &nbsp; if ($vals[$i]["tag"] == 'MSG')</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cnt ++;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>}</div><div><br></div><div>// 該当するチケット番号が格納されている配列の key を取得する</div><div>unset($count);</div><div>$count = count($array);</div><div>for ($i=0; $i &lt; $count; $i ++)</div><div>{</div><div>&nbsp; &nbsp; &nbsp; &nbsp; foreach ($array[$i] as $commit_log)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach ($commit_log as $key =&gt; $commit_log2)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($key === "value" &amp;&amp; strstr($commit_log2,"refs #".$argv[1]) !== FALSE)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $array_key[] = $i;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>}</div><div><br></div><div>if (empty($array_key))</div><div>{</div><div>&nbsp; &nbsp; &nbsp; &nbsp; echo "該当するチケット番号に紐づく修正ファイルはありませんでした\n";</div><div>&nbsp; &nbsp; &nbsp; &nbsp; return;</div><div>}</div><div><br></div><div>// 抽出した key の配列に格納されている file_path を取得する</div><div>// 取得した file_path は　/tmp/xml_parse.log に出力する</div><div>unset($count);</div><div>$count = count($array_key);</div><div>for ($i = 0; $i &lt; $count; $i ++)</div><div>{</div><div>&nbsp; &nbsp; &nbsp; &nbsp; $cnt = 0;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; foreach ($array[$array_key[$i]] as $key =&gt; $value)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if ($value["tag"] === "PATH")</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; echo $array[$array_key[$i]][$cnt]["value"]."\n";</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file_put_contents($filename,$array[$array_key[$i]][$cnt]["value"]."\n",FILE_APPEND);</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $cnt ++;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>}</div><div><br></div><div>?&gt;</div><div><br></div>-----------------------------------------------------------------<br><br></div><br>
]]>
</description>
<link>https://ameblo.jp/hoosys/entry-11431660640.html</link>
<pubDate>Fri, 21 Dec 2012 13:50:26 +0900</pubDate>
</item>
<item>
<title>エニアグラム診断をやってみた</title>
<description>
<![CDATA[ &nbsp;<p>エニアグラム診断によると私は<a href="http://shining.main.jp/enia5.html" target="" title="">タイプ５番</a>でした。<br>無料診断のできるサイトは<a href="http://shining.main.jp/">こちら</a>です。<br><br><br>とりあえず感想・・<br>よくあたってる。。</p><br>
]]>
</description>
<link>https://ameblo.jp/hoosys/entry-11335706129.html</link>
<pubDate>Thu, 23 Aug 2012 13:45:44 +0900</pubDate>
</item>
<item>
<title>MySQL 任意のIDを振りたい</title>
<description>
<![CDATA[ auto_increment されているカラムでもなくて、IDがランダム（正確には生成ルールはある。）で割り振られます。<br>デバッグするときに空いてる番号で100レコードくらいデータ生成したい。<br>という要望があり、そのとき対応した内容をメモしておきます。<br><br>例として、下記のようなテーブル構成だったとします。<br><div>-----------------------<br>CREATE TABLE `test` (</div><div>&nbsp; `id` int(10) NOT NULL</div><div>) ENGINE=MyISAM DEFAULT CHARSET=utf8</div>-----------------------<br><br>下記のようなクエリを実行すると、空いている番号のうち一番小さい番号を返してくれます。<br><br><div>-----------------------</div><div>SELECT<br></div><div>&nbsp; &nbsp; max(ID)+1 as empty_ID</div><div>FROM</div><div>&nbsp; &nbsp; (SELECT</div><div>&nbsp; &nbsp; &nbsp; &nbsp; 0 as ID</div><div>UNION&nbsp;</div><div>SELECT</div><div>&nbsp; &nbsp; ID</div><div>FROM</div><div>&nbsp; &nbsp; table_name</div><div>&nbsp; &nbsp; ) as z</div><div>WHERE</div><div>&nbsp; &nbsp; ID&lt;(SELECT</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min(ID) as ID</div><div>&nbsp; &nbsp; &nbsp; &nbsp; FROM</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (SELECT</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (SELECT</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count(*)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table_name</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WHERE</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ID&lt;=x.ID</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) as rownum,</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ID</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table_name as x</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) as y</div><div>&nbsp; &nbsp; &nbsp; &nbsp; WHERE</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rownum&lt;&gt;ID</div><div>&nbsp; &nbsp; &nbsp; &nbsp; );</div><div><div>-----------------------</div></div><div><br>データはこんな感じで入ってるとします。<br><br><div>mysql&gt; select * from test;</div><div>+----+</div><div>| id |</div><div>+----+</div><div>| &nbsp;1 |</div><div>| &nbsp;2 |</div><div>| &nbsp;3 |</div><div>| &nbsp;4 |</div><div>| &nbsp;5 |</div><div>| &nbsp;8 |</div><div>| &nbsp;9 |</div><div>| 10 |</div><div>+----+</div></div><div><br>で、実際の実行結果はこんな感じです。<br>期待するのは 6 が返ってくることです。<br><br>------------------------------&nbsp;<br><div>mysql&gt; SELECT</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; max(id)+1 as empty_id</div><div>&nbsp; &nbsp; -&gt; FROM</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; (SELECT</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; 0 as id</div><div>&nbsp; &nbsp; -&gt; UNION&nbsp;</div><div>&nbsp; &nbsp; -&gt; SELECT</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; id</div><div>&nbsp; &nbsp; -&gt; FROM</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; test</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; ) as z</div><div>&nbsp; &nbsp; -&gt; WHERE</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; id&lt;(SELECT</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; min(id) as id</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; FROM</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (SELECT</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (SELECT</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count(*)</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; test</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; WHERE</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id&lt;=x.id</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) as rownum,</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; FROM</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; test as x</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ) as y</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; WHERE</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rownum&lt;&gt;id</div><div>&nbsp; &nbsp; -&gt; &nbsp; &nbsp; &nbsp; &nbsp; );</div><div>+----------+</div><div>| empty_id |</div><div>+----------+</div><div>| &nbsp; &nbsp; &nbsp; &nbsp;6 |</div><div>+----------+</div><div>1 row in set (0.00 sec)</div></div><div>------------------------------<br>無事に 6 が返ってきました。<br><br><br>今のレコードに対して一回連番を振っているので、本当であれば連番管理台帳的なテーブルを作ってあげて、ストアド組めばいいと思うのですが、、（ググったらそんなこと書いてました。）<br>ストアドが良くわからないので、強引にこんなことしてみました。<br><br>まぁ…デバッグでしか使わないしいいかなと。。<br><br>とりあえずメモメモ。。<br><div>〆(・ω・`*)&nbsp;</div></div><br>
]]>
</description>
<link>https://ameblo.jp/hoosys/entry-11300362598.html</link>
<pubDate>Thu, 12 Jul 2012 00:52:55 +0900</pubDate>
</item>
<item>
<title>シェルスクリプトでSSHコマンドを使う</title>
<description>
<![CDATA[ ssh -ntt ${user}@${host} <command> <br>とすると、${host} で ${user} が <command> を実行して返ってきてくれる。<br><br>でも、こうするためには ${user} は ${host} ではNonPassでログイン出来ないといけない。<br>Password を聴かれてしまうなら expect コマンドを使用するといい。<br><br>RedHat系なら<br>yum install expect <br><br>で入ると思う。試してないけど。<br>使い方としては、<br><br>--------------------------<br>spawn ssh $LOGINACCOUNT@$HOST<br>expect \"$LOGINACCOUNT@$HOST's password:\"<br>        send \"$LOGINPASSWORD\n\"<br><br>"$LOGINACCOUNT@$HOST's password:"<br>--------------------------<br><br>っていう文字が標準出力に表示されると、<br>$LOGINPASSWORD<br>を標準入力に送る。<br><br>
]]>
</description>
<link>https://ameblo.jp/hoosys/entry-11297833241.html</link>
<pubDate>Sun, 08 Jul 2012 23:23:04 +0900</pubDate>
</item>
</channel>
</rss>
