課題 解決策 対策概要 発生状況 対策詳細 所感 注意 参考 課題 subprocessモジュールを利用して外部のシェルスクリプトを起動することがある。そのシェルスクリプトにおいて子プロセス(バックグラウンドプロセスなど)が動作している最中に、subprocessで設定したtimeoutが発生した。このとき、直接起動したシェルスクリプトのプロセスはkillされるが、その子プロセスは残存しているようだ。timeoutが発生した際には子プロセスも含めてkillしたいがどうすればよいか。 解決策 対策概要 起動するプロセスを別のセッションとして管理し、python の timeout 例外 catch において、プロセスグループ ID に対してkill する。 発生状況 最初に「課題」の状況が発生する様子を示す。以下のようなスクリプトを用意した。シェルスクリプトでは(subprocessで設定し
コンピュータは便利ですが,それでも手間のかかる作業は多々あります。とくにGUI(グラフィカルユーザーインターフェース)のソフトウェアで次のような作業をやらないといけないとしたら,面倒そうだと思いませんか? 複数のファイルのファイル名を一括で変更する 大量の画像ファイルの中から全く同じ画像のファイルを探す 複数のファイルに記録されている数ヵ月にわたるログから特定の期間の情報だけを抽出する これらの作業をするには,ファイラー(Windowsのエクスプローラーなど)やエディタだけでは限界があります。専用ソフトをいくつか使ったり,単純な手作業を繰り返したりして作業することになります。 その点,シェルやスクリプト言語を使えば細かな条件をプログラミングすればどんな作業でも片付けられます。また,ターミナルのCLI(コマンドラインインターフェース)上では,コードを書いてそのまま実行できるため,たいへんお手
パイプでつないでawk使ってハッカー気分かもしれないけどお前の書いてるスクリプトクソクソクソオブクソだから おとなしく Pythonで subprocess 使え!!!!!!!!!!!!!! <追記> 本物のハッカーである皆さんはどしどし使ってくれて大丈夫ですよ^^; lispmemo シェル芸とシェルスクリプトは異なる概念では? そうですね、熱くなって言い過ぎました。 個人がターミナルに打ち込む一度きりのコマンドはOK、ファイルに保存した瞬間に違法としましょう。 <追追記> いやあ思いのほかBuzzっちゃって^^; awkの代替がsubprocess? awkは適当に思いついたから入れただけでパイプ使ってるんだから他のコマンドも入ってますよ^^; grepとかsedとかPythonで同様のことができる(実行時間が現実的な範囲で収まる)ならPythonの関数でお願いします。 読めないのか
前提として、/bin/sh は、デフォルトでは、RHEL系の場合bashシェル、Debian系の場合dashシェルへのsymlinkになっています。この2つのシェルの挙動は細かいところで結構異なります。そもそもの思想として、dashシェルはPOSIX互換を目指す軽量なシェルであり、bashは拡張された高機能なシェル。なのでbash前提で書かれたシェルスクリプトがdashでは動かない、みたいなことはよくあります。そういう感じで困ることがままありますが今回もそういう話。 例えば % sh -c "sleep 100" のようなコマンドを実行した場合、呼び出し元の子プロセスが sh になり、その更に子プロセスが sleep になると直感的には思うでしょう。つまり以下のような具合。 . \_ sh -c sleep 100 \_ sleep 100 しかし、 sh の実体が bash である場合な
B! 6 0 0 0 前に作った shell-logger というシェルスクリプト用ロガーツールをアップデートして Traceback機能を付けたりしてみました。 shell-logger コマンドラインで使う シェルスクリプトの中で使う Traceback 各種設定 shell-logger shell-logger: シェルスクリプトで良い感じにログアウトプットを管理する etc/shell-logger.sh</del>/etc/shell-logger**というファイルを読み込むと debug, info, notice, warn, errと言った関数が使える様になります。 追記: 2022/08/07 現在はshell-loggerとshを取った名前になっています。 追記ここまで インストールはcurlを使って $ curl -fsSL https://raw.github.c
初級者向けに『自分がシェルスクリプト書くときに気をつけていること』をまとめてみました。 @masudaKの『シェルスクリプトを書く際に気を付けていること8箇条』の乗っかりエントリです。 内容は重複しないように書いてますので合わせて読んでください! 基本的にLinuxの/bin/sh、/bin/bashを想定しています。 テキスト処理は標準入力から受け取って標準出力に出す テキストを扱う小さなツールを作りましょう。 引数はオプション情報を渡すのに使います。 そうすればgrep、sort、uniqなどの便利なコマンドとパイプで連携できます。 grep ERROR /tmp/test.log | my_cmd1.sh 192.168.1.1 | sort 全てを実行する1つのスクリプトを作るのはたいへんだし、応用が効かないです。 人間に伝えたいメッセージは標準エラー出力に出す パイプでつないだ時
超高速な大規模データ解析を 実現するソフトウェアツール NYSOL makes it easier and faster to analyze big data. NYSOLver2.4.2 SOFTWARE LIST GitHub NYSOL Manual ※NYSOLは日本発のオープンソース(無料)です。 *NYSOL is open source software in Japan LICENSE 最新情報NEWS 2019.06.05 SOFTWARE NYSOLのDockerイメージ公開 2019.05.23 SOFTWARE nysol_pympiのインストールメモ 2018.09.20 INFORMATION WebbleバージョンのKIZUNAを公開しました。 Back Number NYSOLとはABOUT NYSOL 大規模データの解析に関する様々な大学やプロジェクトで
AWSを日常的に触っていると、シェルスクリプトを書く機会が山のようにあります。あるんだけれど、どうにも考え方が特殊というか、他の一般的なプログラミング言語とは扱い方が違うというか、使いこなせて無い感を強く持ってました。 そんな折、SoftwareDesign2018年1月号でシェルスクリプト特集があったので、渡りに船とばかり購入して読んでみたところ、むっちゃええ感じの特集だったのでここに紹介いたします。 普段からシェルスクリプト書いているんだけれど、「これで良いんかなぁ」というモヤモヤ感をお持ちの方には有用なヒントが満載の特集だと思いますYO __ (祭) ∧ ∧ Y ( ゚Д゚) Φ[_ソ__y_l〉 シェルスクリプトダワッショイ |_|_| し'´J 以下、コマンド例は、bashを前提としています。 第1章「使えるシェルスクリプトにするために」 最初の章では、「使えるシェ
10/07(土)に東京で行われた「jus共催 第31回朝からだと疲れるから午後からでええじゃろシェル芸勉強会」について、今回も大阪でサテライトしました! イベント情報 東京(本家) jus共催 第31回朝からだと疲れるから午後からでええじゃろシェル芸勉強会 問題:【問題のみ】jus共催 第31回朝からだと疲れるから午後からでええじゃろシェル芸勉強会 | 上田ブログ 模範解答付き:【問題と解答】jus共催 第31回朝からだと疲れるから午後からでええじゃろシェル芸勉強会 | 上田ブログ togetter:jus共催 第31回朝からだと疲れるから午後からでええじゃろシェル芸勉強会 - Togetterまとめ 今回も、大阪(私達)と、福岡でサテライト会場がありました。 大阪サテライト 第31回シェル芸勉強会 大阪サテライト@さくらインターネット大阪本社 : ATND 福岡サテライト 第31回シェル
概要 YAMAHAルータ RTX系のNAT変換セッショ値を Linuxサーバからcronでシェルスクリプト回して5分ごとの値を取得する。 シェルスクリプトの内容 ・expectコマンド(対話型)を使ってルータにアクセスし、必要情報を取得 ・取得したテキストを加工して、セッション値、日付等を取り出し。 準備 ・expectコマンドのインストール yum install expect ・ルータ内のコマンド NATの動作状態確認 show nat descriptor address all ルータ環境確認 show enviroment サンプル ※cronで回すので、シェルは絶対パスで書く。 ルータにアクセスして必要情報を取得するシェル(rtxnat.sh) 参考: expectコマンドの使い方 – No:158 – Linuxで自宅サーバ構築(新森からの雑記) #!/bin/sh #---
04/22(土)に東京で行われた「jus共催 第10回初心者向けなのかと百条委員会化する午前のシェル勉強会/第28回基準値を超えるシェル芸勉強会」について、今回も大阪でサテライトしました! イベント情報 東京(本家) jus共催 第10回初心者向けなのかと百条委員会化する午前のシェル勉強会/第28回基準値を超えるシェル芸勉強会 問題:【問題のみ】第28回基準値を超えるシェル芸勉強会 – 上田ブログ 模範解答付き:【問題と解答】第28回基準値を超えるシェル芸勉強会 – 上田ブログ togetter:第28回基準値を超えるシェル芸勉強会 - Togetterまとめ 今回も、大阪(私達)と、福岡でサテライト会場がありました。 大阪サテライト 第28回シェル芸勉強会 大阪サテライト : ATND 福岡サテライト 第28回シェル芸勉強会:福岡サテライト : ATND ぱぴろん(@papiron)さん
Bash on Windowsが強化、Linux版のJavaやGo、PostgreSQLなどもWindowsで実行可能に。3月リリースのWindows 10 Creators Updateで マイクロソフトは来月(2017年3月)登場予定のWindows 10の大型アップデート「Windows 10 Creators Update」で、Windowsに取り込んだLinux機能の「Bash on Ubuntu on Windows」とその背後にある「Windows Subsystem for Linux」(以下、両者をまとめて「Bash on Windows」に省略)の強化を行い、これまで実行が困難だったLinux版のJavaやPostgreSQLなども実行可能になることを、2月8日(日本時間2月9日未明)のイベント「Windows Developer Day - Creators Upda
RHEL/CentOS、Xenを中心にメモを残していきます。内容は無保証。適用する場合は、十分確認の上、自己責任で。 指摘、質問、要望をコメントしてもらえると喜びます。 Cisco IOS (Apple iOSではない)は、CatalystやCiscoルータと言ったCiscoのネットワーク機器のOS。 コの業界、特にインフラ系では、Ciscoがデファクトスタンダードで、避けては通れない。 で、このIOSは主にCLIで操作するのだが、独自のコマンド体系で、UNIX/Linux系のシェルに慣れている技術者には、少々とっつきにくい。 例えば、パイプ(|)はサポートされているが、grepコマンドではなくincludeコマンドを使う、などなど。 これを少しだけ解決するのが、今回紹介するIOS.sh。 IOS上でUNIX系のコマンドの一部と、Bourne Shell系の制御構造が使える。 バッチファイ
はじめに install(1)という、cpとmkdirとchmodを同時に行うような便利コマンドがあることを知りました。 (忘れちゃいましたが、何かのMakefileを見ているときに存在に気付きました) これを使うと、プロビジョニングなどのスクリプトが簡潔に書けるようになりそうです。 ……というわけで使い方のメモがてらまとめてみます。 manの内容まとめ installはBSD版とGNU版があるようですが、ここではGNU版について書きます。 BSD版ではいくつかのオプションが使用できません。(-D はなかったと思う) ちなみにmacの場合は標準でBSD版のinstallが入っており、Coreutilsを入れるとGNU版のinstallが使えるようになります。 4種類の使い方 install [OPTION]... [-T] SOURCE DEST SOURCEをDESTにコピーする。-Tを
全般的に非力なマシンやサーバでXMLをパースするのはちょっと面倒だったり、プログラム書くの面倒だったりするので、できればシェルだけでXML分解できないかなーっていう、管理人の考えから。 xmllintコマンドを使って分解すればいいじゃん、という結論に至り、スクリプトを書いてみた。 xmllintは redhat系だとlibxml2のパッケージに含まれている debian系だとlibxml2-utilsに入っている OSXは10.3以降は標準で入っていて、見当たらないときはApple Developerで拾ってくる 大まかな使い方 xpathを使う場合は--xpathですが、シェルで使うので--shellオプションを付けます まずは、xmlの標準書式に従っていないデータを校正する必要があったりするので、その場合は xmllint --format "元のファイル" > "標準化したファイル"
MNIST 手書き数字データは、0 から 9 までの手書きの数字 70,000 点を収録したデータセットです。機械学習やパターン認識の手法を確認するために利用できます。以下のウェブサイトからデータをダウンロードできます。 MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges データは、訓練データ 60,000 点 (train) とテストデータ 10,000 点 (t10k) に分けられています。それぞれ、手書きの数字を表すピクセルデータ (images) と、それが 0 から 9 のどの数字なのかを示すラベルデータ (labels) からなります。いずれも、バイナリ形式で提供されています。 今回は、これらのデータをバイナリ形式からテキスト形式に変換して、簡単に、データの内容を確認したりス
github.com おそらく先行実装は python で書かれたこれです。 curl にはウェブサイトの応答時間を計測する機能が搭載されており、このツールではそれを利用して出力結果をグラフィカルに表示させています。単なる curl のラッパーのようなツールなのですが、見た目がリッチになるのに加えて、単一ファイルで実行でき python のバージョンに影響されないような工夫がされているのが、受けているポイントのような気がします。 このツールを見たとき「Go で書いてみるの良さそう!(この手のツールで単一バイナリになるのは嬉しいですよね)」と思い、休憩時間やお昼休みなどにちまちま書いていたら、二日前に先を越されてしまいました(そりゃそうですよね。なんでもスピードが大事だと痛感)。 github.com また、ついこの間まで 800 Stars くらいだったのですが、ここ1週間で爆発的に伸びて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く