タグ

Linuxに関するstealthinuのブックマーク (464)

  • 使いやすいシェルスクリプトを書く

    できればシェルスクリプトなんて書きたくないんだけど,まだまだ書く機会は多い.シェル芸やワンライナーのような凝ったことではなく,他のひとが使いやすいシェルスクリプトを書くために自分が実践していることをまとめておく. ヘルプメッセージ 書いてるシェルスクリプトが使い捨てではなく何度も使うものである場合は,体を書き始める前に,そのスクリプトの使い方を表示するusage関数を書いてしまう. これを書いておくと,後々チームへ共有がしやすくなる.とりあえずusage見てくださいと言える.また,あらかじめ書くことで,単なるシェルスクリプトであっても自分の中で動作を整理してから書き始めることができる.関数として書くのは,usageを表示してあげるとよい場面がいくつかあり,使い回すことができるため. 以下のように書く. function usage { cat <<EOF $(basename ${0})

    stealthinu
    stealthinu 2014/05/20
    色つけるとかはクリアコードさんも書いてたな。こうやってある程度ひな形化してあるとそれベースにして書きやすい。ということでこれコピーしてひな形にしとこう。
  • DotenvではなくDirenvを使う

    DotenvではなくDirenvを使う Dotenvは,.envファイルから環境変数を読み込むためのツール.他人には共有したくないパスワードやキーなどを.envに環境変数として記述しておき,実行時にそれを読み込むといった使い方をする.例えば自分は,vagrantからDigitalOceanを使う際に,CLIENT_IDやAPI_KEYを.envに記述してVagrantfileでそれを読み込むという使い方をしていた. ただ,Dotenvは汎用性が低い.Dotenvを有効にするには,プログラム内から明示的にDotenv.loadを呼ぶ必要がある,もしくは,dotenvでプログラムを起動する必要がある.例えば,test-kitchenのdigitaloceanドライバーを使う際には,vagrantの場合と同様にCLIENT_IDやAPI_KEYが必要になる.しかし,test-kitchenでユー

    stealthinu
    stealthinu 2014/05/20
    direnvというツール使うと.envファイルに書いてある環境変数を読み込んだ環境にしてくれる。これはなにかと便利では。
  • Shammerism

    stealthinu
    stealthinu 2014/04/16
    topコマンドでスレッドごとのCPU負荷やメモリ使用量を見る。対話コマンドで「H」で切り替え!ちなみにpsは「-L」オプションでスレッド毎の情報まで見れる
  • Linus様がSystemdにぶちきれる

    systemdは、/proc/cmdlineをパースして、もし、その中に"debug"という文字列を発見した場合、大量の冗長なデバッグメッセージをdmsegに出力する。これは様々な問題を引き起こす。まず、"debug"というあまりに一般的すぎる文字列に勝手に反応してしまうことがひとつ。dmseg、すなわちカーネルのリングバッファーをsystemdの冗長なデバッグメッセージだけで溢れ返させてしまうことがひとつ。そして、なぜかLinuxカーネルのブートに失敗してしまうことがひとつ。 Bug 76935 – Do not parse "debug" command line parameter カーネルコマンドラインに"debug"を与えると、systemdによりパースされる。適当なassertに引っかかると、こんな風にぶっ放される。 [ 150.308000] systemd-journald

    stealthinu
    stealthinu 2014/04/04
    systemd広まってきてるのだと思ったがなんか他の問題があるのだな。linusさんのキレっぷりやまわりの乗っかり具合が面白い。
  • 【CentOS】CentOSでavahiデーモンの起動が失敗する

    iTunesサーバを作るときに小一時間ほどはまったのでメモ。CentOSのバージョンは5.7です。 # /etc/rc.d/init.d/avahi-daemon start Starting Avahi daemon... [失敗] となり、Avahidaemonが起動しない。 CentOS起動時のログを見てみると # cat /var/log/messages|grep avahi --(一部省略)-- Mar 7 21:11:11 pc01 avahi-daemon[3750]: Found user 'avahi' (UID 70) and group 'avahi' (GID 70). Mar 7 21:11:11 pc01 avahi-daemon[3750]: Successfully dropped root privileges. Mar 7 21:11:11 pc01

    【CentOS】CentOSでavahiデーモンの起動が失敗する
    stealthinu
    stealthinu 2014/02/18
    vagrantのcentos6でavahi動かしたかったのだけどなんかエラー出て動かなかったの messagebus というデーモンも先に動かしとかないとだめらしい。むー。
  • ACLから20年!Windows Server 8で追加の新アクセス制御とは?

    Windowsには、ファイルやシステムへのアクセスを制御する仕組みとして「ACL(Access Control List)」という機能が搭載されている。ACLは20年近く使われているWindowsの基機能の1つなのだが、より高度なセキュリティが一般的な用途にも必要とされてきた現状に合わせ、Windows Server 8※には新しいアクセス制御機能が搭載されている。これがどのようなものなのか、アクセス制御の仕組みから見ていこう。 ※連載では「Windows Server "8" ベータ版」を扱っていくが、名称が冗長なため文では「Windows Server 8」と表記する。また、あくまでベータ版であり、最終的な製品版では内容が異なる可能性が高いことを了承していただきたい Windows標準「随意アクセス制御」の歴史と限界 Windowsセキュリティモデルは「随意アクセス制御(Dis

    ACLから20年!Windows Server 8で追加の新アクセス制御とは?
    stealthinu
    stealthinu 2013/12/02
    『多くのLinuxではSELinuxが標準でインストールされるが、(大抵の企業では運用ポリシーがないので)SELinuxを無効にするのがLinux管理者の最初の仕事だ、という冗談があるくらいだ』あとTOMOYOの無駄話とかがおもしろい。
  • 日本Sambaユーザ会 - 「Windowsネットワークのブラウジング問題の解明」〜見える?見えない? ネットワークコンピュータの謎 〜

    ここでは、実際にSamba の運用を始めてから発生するいくつかの問題について、解決方法や調査方法を解説します。具体的には、コンピュータ・ブラウジングの仕組みとSamba のチューニング,Samba のログの見方を取り上げます。

    stealthinu
    stealthinu 2013/11/19
    Windowsのファイル共有でサーバ一覧に出てこない問題について。
  • SELinux と 石川さんごめんなさい - ishikawa84g's blog

    昨日プチいしかわさんごめんなさい祭りがあったので経緯を思い出しながら書いてみます。 私の周りだけだとは思いますが、SELinuxを無効にする時は「いしかわさん ごめんなさい と3回唱えつつ、/etc/selinux/config を編集し、SELINUX=disabled にする。」という噂をたまに時々、稀に良く聞きます。 原因は何かと考えたのですが、多分、hbstudy か qpstudy です。 私は昔々、 hbstudy や qpstudy では毎回、LT のネタに SELinux をやっていました。 毎回やっていると、「あいつはなんだかわからないけど SELinux やっているヤツだ。」と認識されるようで、勉強会の度に「今日も SELinux ですよね」「今日もroot取るんですか」みたいな反応をもらうようになりました。 やっほー、SELinux おじさんだよ。(この頃は黒い人とか

    stealthinu
    stealthinu 2013/10/31
    でもやっぱSELinuxをdisabledするとくれば石川さんというイメージ。DNS浸透いうなとかと同じレベルで。
  • 第296回 Ubuntu 13.10と日本語入力 | gihyo.jp

    今回は、Ubuntu 13.10で大幅に変更された日本語入力の設定方法について解説します。 変更点の概要 Ubuntu 13.04から13.10の間に、多言語入力(ここでは日語だけを取り扱うので日本語入力とします)に関して大きな変更がありました。まず、IBusが1.5にバージョンアップされました。通常バージョンアップによって機能は増えるものなのですが、IBusでは逆でかなり減っています。これは1.5からGNOME[1]との統合(同時に使用されること)が前提になったことによる影響と思われます。それに伴い、Ubuntuでも13.10からIBusとGNOMEが統合された状態で使用できるようになりました[2]⁠。また、IBus 1.4までではUnityのインジケータにIBusのアイコンが表示できるようにパッチが適用されていましたが、これは1.5からはなくなりました。その代わりに、indicato

    第296回 Ubuntu 13.10と日本語入力 | gihyo.jp
    stealthinu
    stealthinu 2013/10/31
    Ubuntu13.10のIBus1.5日本語入力問題についての問題点と解決法まとめ。すごくよくまとまった内容。しかしこういう記事が必要になるところがまだやっぱ未成熟なのだなと感じさせられる。
  • iBus 1.5がクソすぎる

    Ubuntu 13.10へのアップデートが、問題なく終わった。問題は、iBusが1.5にアップデートされてしまったことだ。 iBus 1.5は、去年の年末にリリースされた。リリース直後から、IRCでは怨嗟の声が絶えなかったが、今になって、ようやくその意味がわかった。iBus 1.5はひどい。ひどいなんてものじゃない。クソだ。いや、クソですら上品過ぎる。iBusは超超超超超・・・残念ながら、まだiBusを罵るべき言葉が発明されていないが、とにかくその超なにかだ。 UNIX風システムでは、伝統的に、日本語入力は、かな漢字変換を担当するIMEと、IMEと文字入力を受け取るアプリケーションの間の橋渡しをするIMに分離されている。ユーザーから見えるIMの役割としては、IMEの有効無効を切り替えることだ。 筆者はこれまで、IMとしてiBusを、IMEとしてMozcを使っていた。 iBusはIMである。

    stealthinu
    stealthinu 2013/10/18
    ubuntu13.10でibus1.5になって最悪な設計になったという報告。これはひどい。
  • iBusがクソになった理由 — KaoriYa

    Xubuntu を 13.10 へアップデートしたら日本語入力(iBus)がクソになったのでその理由を調べてみました。 Xubuntu を 13.10 へアップデートしたら日本語入力(iBus)がクソ(1.5)になりました。どんなにクソかは iBus 1.5がクソすぎる に譲るとして、私はどうしてそうなったのか (あわよくばどうすれば直るのか) を真夜中に調べてましたのでその成果を記しておこうと思います。 私の場合 Vim でIMEを制御 できないことで問題が根深いことを知りました。調べてみると InputContext というクラスから is_enabled(), enable(), disable() の3つのメソッドが消えていました。これらのメソッドは端的に言うと日語の状態を取得、有効化、無効化するものです。うんもうIME制御なんてできません。ちなみに その修正が行われたのは約2年

    stealthinu
    stealthinu 2013/10/18
    ubuntuで日本語入力が変になった、と言ってた人たちはこれのことなのかな?こういうのってやっぱ実装してる人たちがIMEを使ってないってことが理由なのかねえ?
  • ルートサーバをでっちあげよう - どさにっき

    2012年2月22日(水) ■ Apache 2.4 正式リリース _ 2.4.1 出た。…2.4.0 は? _ しばらく前からリリースされそうな気配が見えてたので、うちのサーバも 2.3 の最終版で設定のテストをしておこうかと思ったんだけど、間に合わずリリースが先になってしまった。ずいぶん前から評価目的ではいろいろいじってたので、とくにとまどうことなく移行できる目算はついてはいるんだが。このところなんか時間が取れないな。仕事は(いつもどおり)あまりしてないのになんでだろ。まあ、気でやろうと思えばこの程度の作業に使う時間ぐらいは確保できるので、その程度のやる気しかないってことだが。 ■ ルートサーバをでっちあげよう _ global blackout の件、なんか Anonymous は おれ知らねーとか言ってるし、落とすの無理っしょ、とかいう 記事に対して いい指摘だとか言ってる。わし

    stealthinu
    stealthinu 2013/09/09
    apache2.2→2.4の移行で気をつけること「従来の Allow/Deny によるアクセス制限も可能だけど、mod_access_compat といういかにも過去からの互換性のためだけに残してあるよという名前のモジュールが必要になる」
  • Apache 2.4系でのモダンなアクセス制御の書き方

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでのApache2.2系以前でのアクセス制御の書き方は賛否両論でした。僕はあまり好きじゃありませんでした。 過去のアクセス制御に関しては、以下の記事がとてもわかりやすくまとめられていると思います。 こせきの技術日記 – Apacheのアクセス制御をちゃんと理解する。 ここで、以下のように言及されています。 こんなバッドノウハウ、当はどうでもいいと思う。Apache 3.0では、かっこいいDSL(VCL)で書けるようにする構想があるらしいのでがんばってほしい。 ということで、2.4系ではDSLとはいかないまでも、Require*というディレクティブを使ったモダンな書き方ができるようになったので、それを2.2系以前のアクセス制御の記述と比

    Apache 2.4系でのモダンなアクセス制御の書き方
    stealthinu
    stealthinu 2013/09/09
    apache2.2→2.4でallow/denyからrequireという書式に変わった。ただ元をこの書式にしたらhtaccessもこの書式じゃないと動かなくなる(と思う)から既存のhttpdサーバを置き換えする場合には要注意か。
  • CentOS/CentOSで開発ツールを一括でインストールする - Linuxと過ごす

    インストール方法 † 開発ツールのグループパッケージを一括でインストールする方法は、以下のコマンドになります。 このコマンドでDevelopment toolsのグループパッケージ一式がインストールされます。 rootで作業を行ってください。 yum groupinstall 'Development tools' ↑ yum grouplist † 以下のコマンドでグループの一覧が表示されます。 yum grouplist 以下、実行結果になります。(LANG=Cは英語表記にしただけです) [root@centos6 ~]# LANG=C yum grouplist Loaded plugins: fastestmirror, refresh-packagekit Setting up Group Process Loading mirror speeds from cached hos

    stealthinu
    stealthinu 2013/09/08
    CentOSに後から開発ツール突っ込むときは「yum groupinstall 'Development tools'」でグループでのインストールが出来る。
  • RHEL/CentOS にrpmforge, epel, remiリポジトリ追加 - うまいぼうぶろぐ

    redhat/centos の標準のリポジトリでは物足りないので、EPELとRPMForgem, REMI の力を借りましょう。信頼性についてはようわからんので、神経質になるようなサーバではやめといたほうがいいかも。 yum update等を実行したときに余計なものまでうっかり上げないように、install 後に標準では利用しないようにenabled = 0に設定しとく。 使いたいときにyum install --enablerepo=epel,rpmforge, remi のように使う。 # rpm -ivh http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm # sed -i 's/enabled = 1/enabled = 0/g' /etc/yu

    RHEL/CentOS にrpmforge, epel, remiリポジトリ追加 - うまいぼうぶろぐ
    stealthinu
    stealthinu 2013/09/08
    CentOS5.8でrpmforge,epel,remiを使うための設定。enabled=0にしておくことで余計なところでそれらのパッケージを使ってしまわないようにする。
  • curlで HEAD レスポンスを見るメモ - すがブロ

    いつも忘れるので -I で見れる。そんで-Lも付けておくと、リダイレクトを追跡してくれるので、どんな風に動いているかわかりやすいですね。 % curl -LI http://yahoo.co.jp/ HTTP/1.1 301 Moved Permanently Date: Mon, 26 Mar 2012 09:37:04 GMT Location: http://www.yahoo.co.jp/ Vary: Accept-Encoding Connection: close Content-Type: text/html; charset=utf-8 Cache-Control: private HTTP/1.1 200 OK Date: Mon, 26 Mar 2012 09:37:04 GMT P3P: policyref="http://privacy.yahoo.co.jp/w3

    curlで HEAD レスポンスを見るメモ - すがブロ
    stealthinu
    stealthinu 2013/09/08
    curlでHEADを見るときのオプション。-IだとHEADのみ表示。そして-Lついてるとリダイレクトを追跡してくれる。
  • GitHubのhttps経由cloneに失敗する場合の対応(EV SSL用ルート証明書追加) - Qiita

    # git clone https://github.com/XXXXX/YYYYY.git Cloning into 'YYYYY'... error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/XXXXX/YYYYY.git/info/refs fatal: HTTP request failed

    GitHubのhttps経由cloneに失敗する場合の対応(EV SSL用ルート証明書追加) - Qiita
    stealthinu
    stealthinu 2013/07/18
    githubにhttpsでgit cloneしようとしたとき証明書のことで失敗した場合の対処法。自分はCentOS 5でこれが起きた。
  • CentOS 5にruby 2.0.0をインストール - weblog of key_amb

    rootで作業する。 http://www.ruby-lang.org/ja/downloads/ から最新のrubyを取ってくる。 手元の環境だと古いバージョンのrubyがyumでインストールされていたので、 yum remove rubyで、予めアンインストールした。 tar xvzf ruby-2.0.0-p195.tar.gz cd ruby-2.0.0-p195 ./configure --prefix=/usr make make installrubygemsも入れよう、と思ったら、現在の最新版であるv2.0.3が一緒にインストールされたようだ。 $ ruby -v ruby 2.0.0p195 (2013-05-14 revision 40734) [i686-linux] $ gem -v 2.0.3rvmで入れるのもやってみたい。

    CentOS 5にruby 2.0.0をインストール - weblog of key_amb
    stealthinu
    stealthinu 2013/07/17
    cent5にruby2.0をインストールした履歴。そのままconfigure;make installでいける模様。
  • CentOS5.8にPython2.7.3をインストール - SUGI製作所

    python2.7を新たにインストールする場合の導入手順です。 gcc等はインストール済みの前提で。 ソース保存先へ移動 #cd /usr/tmp ソースをダウンロード・展開 #wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz #tar -xvzf Python-2.7.3.tgz #cd Python-2.7.3 インストール(prefixに指定したディレクトリにインストールされる) #./configure --prefix=/opt/python2.7 --enable-shared #make INFO: Can't locate Tcl/Tk libs and/or headers Python build finished, but the necessary bits to build these mod

    CentOS5.8にPython2.7.3をインストール - SUGI製作所
    stealthinu
    stealthinu 2013/07/17
    cent5系にpython2.7をインストールする履歴。sqlite3でエラーが出るらしい… うーん。とりあえずmysqlでやるようにすりゃいいからうちも使わないことにして逃げよう。
  • Apache のリバースプロキシの設定方法 - WebOS Goodies

    日は Google Gears 関連のもうひとつのネタを書こうと思ったのですが、間に合わなかったので最近仕事で使った Apache のリバースプロキシ機能の設定方法などをご紹介します。リバースプロキシは、特定のディレクトリ以下へのリクエストを他の Web サーバーに中継する機能です。 LAN 内の複数のマシンで稼動している Web サイトをひとつのグローバル IP で公開したり、 Apache 以外の Web サーバー(Rails でよく使われる mongrel とか)を Apache の Web サイトに統合したりとかが簡単にできます。 Web サイトを柔軟に構築するために、覚えておくと便利ですよ。 前提条件 Apache のリバースプロキシ機能を利用するためには、 mod_proxy を組み込んだ Apache が必要です。通常の Linux ディストリビューションなどではデフォルト

    stealthinu
    stealthinu 2013/06/26
    apacheでのリバースプロクシの設定。nodeやtomcatなど別ポートで動いてるサーバを特定ディレクトリにマッピングする例など。