▼ 2015/06/04(木) Jenkinsでビルドトリガが設定されているジョブの探し方
さて、ちょっとjenkins君をいじる機会があってですね。
ビルド環境が一箇所に集中することで、奴の環境でビルドできたけど俺の環境でビルドできんぞどうなってんだぁ!なんつーことがなくなっていろいろ捗るのだけど、いろんなジョブをみんなが好き勝手に作っていると、けっこう無駄なジョブでいつの間にかリソースを圧迫してたりする。
かと言って、ジョブを整理しようとすると、そのジョブはリポジトリのコミットを監視しながら随時ビルドしてんだ勝手に止めるなどうなってんだぁ!なんつーことになる。
そこで、ビルドトリガを設定されているジョブの探し方をここにメモしておく。
jenkinsサーバにsshなどでログインし、以下のようにコマンド実行。
[root@localhost ~]# cd /var/lib/jenkins/jobs [root@localhost jobs]# grep -r \<triggers\> */config.xmlまあ、難しいことはなくて、トリガが設定されていなければ、config.xml中のタグが、
<triggers>ではなく
<triggers/>となる。triggersタグに何か書いてあるものを探すだけなのね。
出力されたディレクトリの名称が、そのままjenkinsのジョブ名称となるわけよ。
- TB-URL http://snjx.info/diary/snjx/056/tb/
▼ 2013/06/17(月) VBScriptで引数を受け取る、VBScriptで正規表現
最初はバカにしていたけど、結構それなりに使えるものだというのはわかってきた。
何でもやってはみるもんだよね。
と、いうことで、2題ほどメモ代わりに書いてみる。
- TB-URL http://snjx.info/diary/snjx/055/tb/
▼ 2012/02/26(日) rubyでメッセージボックス
ポイントはVbOKOnlyとかの定数を書いているところ。
win32oleの使い方は結構あちこちで書いてあるし、excelなんかが持っている定数をrubyで使う方法なんかは探すと見つかるけど、意外や意外、普通にメッセージボックスを使う方法が結構少なかった。
で、ま、最低限いりそうな部分を書いてみたのさ。
require 'win32ole' require 'singleton' class Msgbox include Singleton # ボタンの種類 VbOKOnly = 0 #[OK] VbOKCancel = 1 #[OK] [キャンセル] VbAbortRetryIgnore = 2 #[中止] [再試行] [無視] VbYesNoCancel = 3 #[はい] [いいえ] [キャンセル] VbYesNo = 4 #[はい] [いいえ] VbRetryCance = 5 #[再試行] [キャンセル] # アイコン VbCritical = 16 #警告メッセージ アイコン VbQuestion = 32 #問い合わせメッセージ アイコン VbExclamation = 48 #注意メッセージ アイコン VbInformation = 64 #情報メッセージ アイコン # ボタン戻り値 VbOK = 1 #[OK]ボタン VbCancel = 2 #[キャンセル] ボタン。 VbAbort = 3 #[中止] ボタン。 VbRetry = 4 #[再試行] ボタン。 VbIgnore = 5 #[無視] ボタン。 VbYes = 6 #[はい] ボタン。 VbNo = 7 #[いいえ] ボタン。 def initialize @wsh = WIN32OLE.new('WScript.Shell') end def open(strText,intSecondsToWait,strTitle,intType = VbOKOnly + VbInformation ) @wsh.popup(strText,intSecondsToWait,strTitle,intType) end end msgbox = Msgbox.instance msgbox.open("hoge",0,"fuga") #デフォ ret = msgbox.open("hoge",0,"fuga", Msgbox::VbOKCancel + Msgbox::VbCritical ) #OkCancelでやばいアイコン case ret when Msgbox::VbOK puts "ok" when Msgbox::VbCancel puts "cancel" end
1: 2022年02月28日(月) 午前11時46分
クラス内の定義を削除して、
WIN32OLE.const_load('Visual Basic For Applications', Msgbox)
で Msgbox::VbOK などロードできますよ(^_^)
- TB-URL http://snjx.info/diary/snjx/052/tb/
▼ 2012/02/23(木) くるくる回る
rubyでコマンドラインでくるくる回る。
@str = '(´v` )' def windmill case @str when '(´v` )' @str='(v` )' when '(v` )' @str='(` )' when '(` )' @str='( )' when '( )' @str='( ´)' when '( ´)' @str='( ´v)' when '( ´v)' @str='( ´v`)' else @str= '(´v` )' end print "\r" + @str end 20000.times { windmill }
- TB-URL http://snjx.info/diary/snjx/051/tb/
▼ 2012/02/12(日) rubyでfso
日常的な作業を一部自動化させたくて、ちょっとディレクトリの操作をしたかったの。
# 指定したフォルダ以下のサブフォルダを全部出力 require 'win32ole' def getSubFolders folders folders.each do |folder| puts folder.Path getSubFolders folder.subFolders end end fso = WIN32OLE.new('Scripting.FileSystemObject') getSubFolders fso.getFolder(ARGV[0]).subFoldersARGV[0]ってのはコマンドラインの第一引数をあらわすわよ。
- TB-URL http://snjx.info/diary/snjx/050/tb/
▼ 2011/12/26(月) batファイルでメッセージを出す方法
いまどきの人って、windowsのバッチファイルなんて使うのかしらなどという疑問は置いておいて。
以前に書いたWindowsってsleepコマンドないんだねーの応用編として、バッチファイルからメッセージボックスのポップアップを出す方法をかいておく。
まぁ、簡単な話で、以下のような感じ。
echo msgbox "メッセージよぉん",vbCritical,"タイトルよぉん" > %TEMP%/msgboxtest.vbs & %TEMP%/msgboxtest.vbsこの内容のバッチファイルを作って実行すると、以下のような感じの画面が出てくる。
このワンライナーはいろいろ応用が利きそう。
1: 2013年03月06日(水) 午前10時22分
すっげぇΣ(・ω・ノ)ノ
batにたった1行でポップアップが組み込める!
ありがたく使わせていただきます!
2: 2013年04月04日(木) 午後0時11分
まさに探していた例文でした。感謝!
4: 2013年07月08日(月) 午後2時58分
デモで「ポップアップが出たら○○する」という条件を作りたくてこちらに辿り着きました。以前までは、バッチ内で"msg"コマンドを使用していたのですが、こちらのほうが見栄えがいいので使わせていただきます(^o^)
今年に入ってどうしたことでしょうか。
バッチファイルはやってんの?まじ?
いや、みなさんそんな断りがないと使えないようなたいそうなテクニックではないので好き勝手にコピペしてください。
ま、小さいことでも問題解決の一助にでもなれば。
7: 2013年07月17日(水) 午後10時43分
参考にさせて頂きました。
助かりました。
ちなみに作成されたvbsファイルを即デリートさせるのって
ありだと思いますか?
それともそのままTEMPに残しておいた方がいいと思いますか?
コストと内容によってどちらでもお好みで。
もともとバッチファイルなんてアドホックな用途ばっかりなんで、上記例題を書こうと思ったときは、後始末なんて考えていませんでした。
しかし、業務で使用される場合は、実行環境にゴミが残るのはよろしくないという場合もありましょう。その場合は、同じスクリプトの中で用済みのゴミは自分で削除するコードを入れておくのは「あり」だと思います。
9: 2013年07月18日(木) 午後8時38分
わかりやすい説明ありがとうございました。
10: 2013年12月03日(火) 午後3時18分
バッチでこんなに簡単にメッセージボックス出せるとは思いませんでした!
ありがとうございます。使わせていただきます。
11: 2013年12月12日(木) 午後2時45分
batで強制的に稼働中のプロセスをKillっているbatがあるのですが、何もメッセージなしで使っているので、メッセージが出ればなと思い、ここへ来ました。分かりやすい説明ありがとうございます。
12: 2014年10月15日(水) 午後3時26分
感動です。使わせていただきます。ありがとうございます。
13: 2015年01月14日(水) 深夜1時58分
すげー
14: 2015年03月05日(木) 午後4時20分
参考にさせて頂きます。ありがとうございました。
15: 2015年05月31日(日) 午後2時41分
やっと見付けました。。。(^o^)
16: 2015年07月25日(土) 午後2時53分
とても助かりますた
17: 2015年08月08日(土) 午前9時36分
ありがとうございます。使わせて頂きます(^○^)
18: 2015年10月03日(土) 午後5時01分
ありがとうございます!
ってかbat流行ってんのかな?
19: 2015年10月11日(日) 午後9時53分
たどり着きました...ありがたく使わせて頂きます。
20: 2015年10月23日(金) 午後6時06分
メッセージの改行どうしたらいいでしょう
"はてな"&vbCr&"はてな"としましたがだめでした
21: 2015年10月23日(金) 午後6時06分
メッセージの改行どうしたらいいでしょう
"はてな"&vbCr&"はてな"としましたがだめでした
22: 2015年10月24日(土) 午前11時48分
&じゃなくて+でだきますた
23: 2015年10月28日(水) 午後2時07分
ぷげらさん、すみませんめったに自分のとこ見に来ないので見逃していました。
自己解決なさったようで何よりでした。
@if(0)==(0) ECHO OFF
echo ■BATによる前処理です。■
cscript.exe //nologo //E:JScript "%~f0" %*
echo ■BATによる後処理です。■
@pause
GOTO :EOF
@end
WScript.echo("■WSHによる処理です。■");
=========================
このようにすれば、WSH/JScriptコード※VBSではありません。
をインクルード可能です。
引用元:BATとWSHのコードを1ファイルに混在させるためのshebang記法(複雑なバッチを1ファイルで実現)
メッセージボックスの命令文は
WScript.CreateObject("WScript.Shell").Popup("メッセージよぉん",0,"タイトルよぉん", 0 + 16)
です。詳しくはURL参照
25: 2016年05月16日(月) 午前11時27分
おーなるほど、batファイルの中でcscriptを読んじゃうわけですね。
これは面白い。
http://computer-technology.hateblo.jp/entry/20131025/p1
ただ、ここまでくると素直にvbsかjsで作っちゃったほうがいいと思うけど…
レガシーのbatファイルがたくさんあってメンテしなきゃならない時には有効ですね。
26: 2016年07月29日(金) 午後0時01分
なるほど、ありがとうございました!
…だけでは何なので、ご参考まで
バッチファイルのエスケープはハットです.>20さん、見てるかな?
"はてな" ^& vbCrLf ^& "はてな"
でいけるハズ
それと、echo msgbox ... > ... の代わりに、
echo WScript.Quit(MsgBox(...)) > ... とやると、
%ERRORLEVEL%で分岐ができますね
ただし、7さんのような用途で、& %TEMP%... まで1行につなげてしまうと、
%ERRORLEVEL% は del の結果となってしまうので注意です
(ハマりました)
27: 2016年08月03日(水) 午前10時42分
お、おお(感激
友達に送るウイrいやいやメッセージのために使わせていただきますw
28: 2016年08月10日(水) 午前11時11分
…なぜ、この記事だけこんなに伸びてるんだろう。
29: 2016年09月16日(金) 午後5時18分
ありがたやありがたや
使わせていただきます!
30: 2016年09月26日(月) 午後3時07分
汎用性すげー
いただき!
31: 2016年10月25日(火) 午後6時32分
いただきまーす
thx!
32: 2017年06月22日(木) 午後11時04分
moraimasu
33: 2018年07月22日(日) 午後1時58分
AccessVBAだけはかろうじてわかります。自作アプリの第三者のセットアップにAccessを使うなんて変なのでwとりあえずバッチと格闘してますのでごちそうになりますw
34: 2020年08月25日(火) 午前9時12分
天才現る
35: 2020年09月08日(火) 午後4時25分
ありがとうもろこし
36: 2021年03月28日(日) 午前10時49分
なんか文字化けする。
37: 2021年09月08日(水) 午前11時09分
すごいです。感謝
38: 2021年11月20日(土) 午後9時50分
UTF-8ではなくANSIで文字を保存すると文字化けしません(それ以外だと文字化けします)
39: 2024年02月28日(水) 午前10時37分
おもろい
- TB-URL http://snjx.info/diary/snjx/049/tb/
▼ 2011/12/25(日) awstats_buildstaticpages.plが勝手にプレフィックスをつけくさる件について
さて、自サイトのアクセス解析にawstatsを入れてみたんだけど、若干はまった部分があったのでメモしてみる。
なんでだろ、きっと俺一人じゃないのだろうにあんまり情報がなかった。awsatatsってあんまり使われてないんかな?
■まず、現象。
Apacheアクセスログ解析(AWStats)こちらを参考に、awstatsをインストールしてアクセス解析仕込んだのね。
インストールと設定はおおむねうまくいったのね。で、単発ではちゃんと動くようになったんだけど、どうもなんだか、index.htmlの統計ページから個別の「全リスト」へのリンクが間違ってるくさい。
手順に間違いはないようなのに、404が返ってくるのだ。
ディレクトリの中を見てみると、index.htmlでは「snjx.info.yyyymm.allhosts.html」とかでaタグ書かれているのが、実際のファイルでは「awstats.snjx.info.yyyymm.allhosts.html」なんてファイル名で作られていた。
ありゃー。
■で、どうしたのか
これはつまり、統計ページを作るところでaタグが間違っているのか、月別の詳細ページを作るところでファイル名が間違っているのかどっちかだと見当をつけた上で、それぞれどこで作っているのか手順の再検討を始めたわけさ。で、awstatsreport.shの中身をもにょもにょ読んでいると「awstats_buildstaticpages.pl」ってのが実際のファイル作成を担っている模様。ははぁawstatsを直接キックしているわけじゃないのね。
直接、awstats_buildstaticpages.plをたたいて、あれこれ実験してみてよくわかったけど、こいつが詳細ページのファイル名に勝手にawstatsとかつけるくさい。そのくせ、統計ページのaタグはホスト名から始まっているだけなのだ。悪さをしているのはこいつ。
で、けっきょく、awstats_buildstaticpages.pl を修正した。
446行目くらいを以下のように。
# Launch all other awstats output for my $output (@OutputList) { my $command="$smallcommand -output=$output"; print "Build $output page: $command\n"; $retour=`$command 2>&1`; # $OutputFile=($OutputDir?$OutputDir:"")."awstats.$OutputSuffix.$output.$StaticExt"; # 勝手につける文言を削除 $OutputFile=($OutputDir?$OutputDir:"")."$OutputSuffix.$output.$StaticExt"; open("OUTPUT",">$OutputFile") || error("Couldn't open log file \"$OutputFile\" for writing : $!"); print OUTPUT $retour; close("OUTPUT"); $cpt++; push @pages, $OutputFile; # Add page to @page for PDF build }
- TB-URL http://snjx.info/diary/snjx/048/tb/
▼ 2011/03/23(水) 災害時のシナリオについて
それはもちろん原子力のことを念頭においてるんだけど、ほかの分野でも同様だと思う。たとえばそうだな、住民基本台帳のデータが流されちゃったことなんか、モロにそれじゃないか?
ただ、そういった表に見える課題とは別に…いや、その背景にもうひとつ重要なテーマが隠されているような気がしてきた。
災害時の対策を検討するときに、何かしらのシナリオを想定することって、どれだけ妥当性があるもんだろうか?
- TB-URL http://snjx.info/diary/snjx/047/tb/
▼ 2011/03/01(火) だれかカスタマレビュー書かないか?
なんて素敵なアイテムなんだ!
- TB-URL http://snjx.info/diary/snjx/046/tb/
▼ 2011/01/05(水) Windowsってsleepコマンドないんだねー
sleepとかさ、リソースキット入れると使えたりするけどさ、そういうの面倒じゃん?
いや、そりゃ、WSH使えば何だってできるよ?できるけどさ、なんか微妙に大げさな気がしない?
ほら、Railsで試作とかしてるとさ、ちょっとローカルで動かしてみたい時ってあるじゃん?
そういう場合は、WEBrickキックしーの、立ち上がりきるまで待ちーの、ブラウザ立ち上げーのってマウスでカチカチすんのだるいじゃん?そういうの一発で起動しときたいじゃん?UNIX系のOSだったらそれぞれのステップで1行書けばすむ話じゃん?たかだかこの程度でVBScriptやJavaScript書くの面倒じゃん?
んなこんなで、できるだけ簡単にバッチファイルを書いてみたのが続きのやつ。
- TB-URL http://snjx.info/diary/snjx/044/tb/
▼ 2011/01/04(火) 仕事始め
松江市の方々で交通が遮断されたり停電したりした割には、仕事始めはたいしたトラブルもない通常の週明けであったことよ。
善哉善哉。
- TB-URL http://snjx.info/diary/snjx/043/tb/
▼ 2010/11/18(木) ちなみにー
1: 2010年11月24日(水) 午後5時58分
いーなーいーよーねー。
- TB-URL http://snjx.info/diary/snjx/042/tb/
▼ 2010/08/17(火) 楽観的ロックと悲観的ロック
railsで、DBのレコードロックについてちょっと調べた。
ruby on railsが提供するレコードロックは楽観的ロックと悲観的ロックの2種類がある。
この、いかにも直訳調な名称もどうかと思うけど、たいがい二つ並べて解説されているのでなんかこうよく似たものと思われがち。ところがこの二つ、実は使いどころがまったく違うシロモノだったって話。
- TB-URL http://snjx.info/diary/snjx/041/tb/
▼ 2010/07/07(水) あーなんか今年もこんな感じ
今年もこんな感じで進んでいきそうですな。
- TB-URL http://snjx.info/diary/snjx/040/tb/
▼ 2010/01/12(火) 【急募】グーグルアドワーズの粋で鯔背な利用法。
- TB-URL http://snjx.info/diary/snjx/039/tb/
▼ 2010/01/01(金) 明けましておめでとうございます。
去年はこちらはほとんど放置プレイでした。今年も多分こんな調子で行くと思います。
ま、ちょこちょこtwitterやtumblrはいじっていると思いますので、その辺冷やかしてみてください。
積ん読をちょっと切り崩さないとなー。
- TB-URL http://snjx.info/diary/snjx/037/tb/
▼ 2009/12/24(木) rubyで複数のrsyncを、パスワード入力とともに実行。最後にcrontabに登録
…最近なんかイベントがあったはずなんだけど、よくわかりませんな。中止になったんじゃないですか?
■ 外部コマンドを実行するとパスワード入力を求められちゃう
さて、ある事情があって、異なるサーバ間でデータの同期を取る必要がありいろいろ細工してみた。rsyncコマンドで対象ファイルを指定すればいいんだけど、その際に厄介なことは、パスワードの入力が求められること。
一回限りだったらそれでも別にいいんだけど、できればcronに突っ込んで1時間ごとに実行したい。
rsyncコマンドを実行する際にパスワード入力をさせない方法は幾つかあるようだけど、どれも面倒そう。こういう運用は2ヶ月ほどの予定で、それ以後は同期元のサーバは停止するので、わざわざrsyncデーモンを走らせるとかの処置は、やってもいいけどちょっとモチベーションがわかない。
本格的なバックアップサーバを用意するわけではないので、このままrubyで外部コマンドを実行する簡単なスクリプトを組んでおきたい。
で、スクリプトを組む上でのポイントは
- 複数のrsyncコマンドを実行する
- パスワードを入力する
- 成功失敗に関わらず、実行結果をログに出す
- ひとつのコマンドが失敗しても次のコマンドを実施する
こういう対話的な処理をrubyで実現する場合、ptyとexpectを利用するのが定番らしい。
▼ 2009/06/26(金) rubyでamazonから書籍検索
よくわからんのは、req.search( is, rg , 3) と書くと、1から3ページ目まで送ってくること。
2〜5ページ目だけよこせというような使い方ができない。なんでじゃ。使いにくい仕様だ。
- TB-URL http://snjx.info/diary/snjx/035/tb/
▼ 2009/06/24(水) rubyでamazonからISBNを検索
- TB-URL http://snjx.info/diary/snjx/034/tb/
▼ 2009/03/19(木) ロケットパンチ
ロケットパンチとぐぐると、スポンサーリンクにすげーこと書いてある。
ロケットパンチ
無料で国内配送 (1500円以上のご注文)
関東なら即日配送も
Amazon.co.jp
ロケットパンチの画像検索はさらにすごい。
ロケットパンチ
ロケットパンチをさらに安く
関東なら即日配送も
Amazon.co.jp
やすくなるんだって!
まぁ消耗品だしね。
さすがAmazon。世の中進んでいるな。
1: 2009年03月21日(土) 午後11時42分
なんか「V・G猫ロケットパンチグローブ」ってのが気になったワタクシ。萌ゆる〜♪ってことで。
2: 2009年03月23日(月) 午後6時21分
うん、まぁ。
人の趣味には特に文句をつける気はありませんが、ヴァリアブル・ジオってエロゲですぜ。
http://ja.wikipedia.org/wiki/%E3%83%B4%E3%82%A1%E3%83%AA%E3%82%A2%E3%83%96%E3%83%AB%E3%83%BB%E3%82%B8%E3%82%AA
3: 2009年03月25日(水) 深夜2時18分
ただ単にヲタグッズとして「萌え〜」なのかと思いきや得炉毛でしたか!V・Gとかって略すなよっ!!
シューティングゲームとかバーチャファイター系とかのマジ格闘系(なんか一人くらいこういうキャラ混じってるよね)と勘違いしちゃったじゃねーか!
つうかでも多分得炉毛でもこれ多分萌え系得炉ですよね??
- TB-URL http://snjx.info/diary/snjx/031/tb/