課題 解決策 対策概要 発生状況 対策詳細 所感 注意 参考 課題 subprocessモジュールを利用して外部のシェルスクリプトを起動することがある。そのシェルスクリプトにおいて子プロセス(バックグラウンドプロセスなど)が動作している最中に、subprocessで設定したtimeoutが発生した。このとき、直接起動したシェルスクリプトのプロセスはkillされるが、その子プロセスは残存しているようだ。timeoutが発生した際には子プロセスも含めてkillしたいがどうすればよいか。 解決策 対策概要 起動するプロセスを別のセッションとして管理し、python の timeout 例外 catch において、プロセスグループ ID に対してkill する。 発生状況 最初に「課題」の状況が発生する様子を示す。以下のようなスクリプトを用意した。シェルスクリプトでは(subprocessで設定し
Ubuntu で有名な Canonical 社が OSS として提供する仮想マシン管理ツール「Multipass」を利用して macOS 上で Docker 環境を構築してみた はじめに アノテーション テクニカルサポートチームの 川崎 です。 現在私は、クラスメソッド グループ、アノテーション株式会社で AWS のテクニカルサポートと、新卒メンバー向けの育成に携わっています。 チームメンバーがローカルのmacOS上で自由に開発できるDocker環境を探していたところ、「Multipass」という最適なツールを見つけましたので、ブログで共有します。 以前はDocker Desktopが無料で利用できましたが、一部有料化されたため、代替ソフトウェアを探していました。Multipass は OSS として提供されており、マルチプラットフォーム対応で、macOS、Windows、Linux で使
コンピュータは便利ですが,それでも手間のかかる作業は多々あります。とくにGUI(グラフィカルユーザーインターフェース)のソフトウェアで次のような作業をやらないといけないとしたら,面倒そうだと思いませんか? 複数のファイルのファイル名を一括で変更する 大量の画像ファイルの中から全く同じ画像のファイルを探す 複数のファイルに記録されている数ヵ月にわたるログから特定の期間の情報だけを抽出する これらの作業をするには,ファイラー(Windowsのエクスプローラーなど)やエディタだけでは限界があります。専用ソフトをいくつか使ったり,単純な手作業を繰り返したりして作業することになります。 その点,シェルやスクリプト言語を使えば細かな条件をプログラミングすればどんな作業でも片付けられます。また,ターミナルのCLI(コマンドラインインターフェース)上では,コードを書いてそのまま実行できるため,たいへんお手
日常から使えるUnix系OS業務効率up技 気分転換に、普段からLinuxで作業する上で割と便利なツールだったり小技を共有します。知ってたらごめんね 一応全部MacでもLinuxでも動くはずです。 高速化系 axel , aria2c http://qiita.com/sarumonera/items/2b30999d7d41a4747d74 https://goo.gl/gsFrCT https://wiki.archlinuxjp.org/index.php/Aria2 http://qiita.com/TokyoMickey/items/cb51805a19dcee416151 こいつらは割と有名(?)かなと思います。やってることはcurlやwgetとほとんど変わらず、サーバにHTTPリクエストを送ってレスポンスを取ってくるだけなのですが、ダウンロードを高速化するためにtcpコネクシ
複数の接続元からSSH接続をさせたい、かつそのうち1つのユーザーは動的IPアドレスから接続させなければならない、という要件はよくある話です。こうしたユーザーのためにSSHで使用するTCP/22番ポートをフルオープンにするのは躊躇われるかと思いますので、こんな仕組みを考えてみました。 ユーザー「hamada」は固定IPアドレスからTCP/22へssh接続させる ユーザー「nullpopopo」は動的IPアドレスからTCP/12345へssh接続させる 下記手順を行う前に、あらかじめ hamada ユーザーと nullpopopo ユーザーを useradd コマンドで作成しておいてください。 Ansible徹底入門 クラウド時代の新しい構成管理の実現 ■ sshd_config 設定変更 まず、 /etc/ssh/sshd_config で 22番ポートのほかに12345番ポートでsshdを
B! 44 0 2 0 ターミナルでドキュメントを開く手軽なコマンドのlessですが、 小さなものならcatで良かったり、 サイズがそこまで大きく無ければvim等のエディタで開いてみてしまったりすることが多いです。 というのもlessの機能を余り知らないのでvimなどで見た方が色々と便利だったりするので。 しかしlessも実は結構高機能で便利だったりするので知っていると 使えることも結構あります。 その辺の一歩踏み込んだlessの使い方について。 less オプションのプレセット指定 表示中にオプションを切り替える シンタックスハイライト(source-hilight、ついでにlesspipe.shについて) 途中からエディタで開く 複数のファイルを扱う tail -fの代わりに使う less lessはMark Nudelman氏によって書かれたもので、今は GNU Projectの一つ
sed って足し算くらいできるんじゃないかと思ったので作ってみました。 http://shinh.skr.jp/koneta/add.sed i@um ~> echo 1 1 | ./add.sed 2 i@um ~> echo 999 999 | ./add.sed 1998 i@um ~> echo 12345 54321 | ./add.sed 66666ICFPC のクソ(誉)言語どもに比べれば sed はマシなんじゃという疑念が… と、このあたりで 神々の偉業 のすさまじさ(っていうかfor知らずにgotoとifだけでコード書いちゃうような若気の至りとかを感じる側面はあるんだけど)がわかってきたので良かった。偉くなるのは無理でも、偉い人の偉さは知りたいよねみたいな。
はじめに 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を
突然だがSSHが好きである。 多分、ITエンジニアで、LinuxサーバーにSSHでリモートログインする必要がある人なら、みんなSSHが好きに違いない。vi派もEMACS派も、分け隔て無くSSHが好きであろう。 さて、SSHが好きといっても、単にパスワード認証で接続している人がいるかもしれないが、総当たり攻撃を仕掛けてくださいと言っているようなものなので、早急に公開鍵認証ぐらいは設定すべきだろう。設定の仕方がよく分からんという方は、私がディレクターとして編集、執筆した『Linuxシステム管理標準教科書』をダウンロードして勉強してください。 もう少しセキュリティを高めたい時は、2要素認証をお勧めしたい。公開鍵認証に、さらにGoogle Authenticatorを使ったワンタイムパスワード認証を絡めて認証を行う方法だ。 方法については、以前私自身がエントリーを書いたが、最近ブロードバンドタワー
DoRuby! (ドルビー!) は現場のエンジニアによる、主にRubyなどの技術に関する様々な実践ノウハウを集めた技術情報サイトです。 find コマンドの -mtime オプションを指定することで最後にデータが修正された日時で検索することができます。 日時の指定方法も色々あるのですが、個人的にわかりづらかったので以下のパターンだとどのような結果になるのか、実際に動かしてみることにしました。 試すパターン find -mtime 日数 find -mtime +日数 find -mtime -日数 結果からいうと、 find -mtime -3 3日(72時間)前〜現在 find -mtime 3 3日(72時間)前〜4日(96時間)前 find -mtime +3 4日(96時間)前〜過去 こうなります。 とりあえず、確認用のファイルを適当に作って試してみます。 touch -t 07
最終更新日: 2002-06-18 (公開日: 2002-06-18) Unix Magazine 誌に 2002年1月号から 2003年2月号にかけて連載し ていた記事の元の原稿です。 他人のコードを進んで読もう。次に、自分のコードを書こう。 そして、自分のコードを他人にレビューしてもらおう。 -- Bill Gates *1 プログラミングに上達する最良の方法は他人のコードを読むことだ、 という主張をよく耳にする。実際、私が知っている優秀なプログラ マは皆コードを読むのが趣味のようである。中でも優秀な一人は、 「プログラミングの本など 1冊しかまともに読んだことがない。後 はすべて人のコードを読んで覚えた」という*2。 プログラミングの上達という目的はさしおいても、他人のコードを 読んで、それにほんの少しだけ手を加えることによって自分の目的 を達せられることは多い。今回はそのようにして
ref. man script man screen http://sourceforge.jp/magazine/06/09/11/088249 新人を教育するのに使えるかなーと思って調べた。とりあえず画面見せるだけならscriptがてっとり早いのか。screenは異なるユーザと端末共有しようと思うと、setuidしたり(必要なら読み取り専用にしたり)と何か面倒な気がする。 が、3人以上で共有しようとすると名前付きパイプでは出来なかったので、screenを使わないとダメかも。 script 名前付きパイプ man scriptに書いてる内容。ほぼリアルタイムでモニタできる。 user1 $ mkfifo foo $ script -f foo user2 $ cat foo $ cat foo | tee script.log # ログ残す場合名前付きパイプ使ってるので、user2がca
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く