タグ

linuxに関するs-shinのブックマーク (22)

  • Who sets $USER and $USERNAME environment variables?

    Also, will these variables always match currently logged-in username (they do on my Debian system)? Can I assume their availability in other Unix(-like) systems? I'm also curious why one would use whoami instead of just reading any of these variables.

    Who sets $USER and $USERNAME environment variables?
  • 一時ファイルとdentry cacheとメモリ - blog.nomadscafe.jp

    わりと長い間悩んでいたんだけど、最近解決したのでメモ。 サービスで利用しているsmalllightの画像変換サーバが、Apacheが使っているメモリ以上のメモリを使用し、Swapしたりメモリ枯渇でサーバがダウンするなどのことが何度かありました。 ↑メモリの動きはこんな感じ いろいろ調べた結果「dentry cache」なるものがメモリ多くを占めていることがわかりました。dentry cacheはディレクトリやファイル名とinodeとを結びつけに使われるキャッシュです。smalllightでは画像を変換する際に一時ファイルを作成するので、その情報が残るようです。 手元で再現させる 番で使っているサーバはCentOS5系ですが、手元のVagrant上のCentOS6(ファイルシステムはext4)で、再現させてみました。 use Parallel::Prefork; use File::Tem

  • Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して

    しばらくLinuxネタが続く・・。 近いうちに最近出たJava8ネタを書いてみようと思います。が、もう少しLinuxネタにお付き合いください。 前回はsshdを対象に親プロセスをkillした場合の動作を確認した。 killされたプロセスの子プロセスは孤児プロセスとなり、カーネルによって自動的にinitプロセスの子として扱われる事を説明した。(この動作を「リペアレンティング」と呼ぶ) 今回はこの続き。 Linuxで作業していてCtrl+Cしてプロセスを終了した場合、フォアグラウンドのプロセスやその子プロセスも一緒に終了する。 ということは、子プロセスは孤児として扱われず、リペアレンティングされていないことになる。 今回の記事ではこの振る舞いの違い(リペアレンティングされるか否か)に着目し、kill -SIGINTコマンドとCtrl+Cの違いについて考えていく。 そもそもkillコマンドやCt

    Ctrl+Cとkill -SIGINTの違いからLinuxプロセスグループを理解する | ギークを目指して
  • rsync でディレクトリの同期(バックアップ) - maruko2 Note.

    rsync でディレクトリの同期(バックアップ) 提供:maruko2 Note. 移動: 案内, 検索 目次 1 書式 2 option 3 使用例 3.1 source ディレクトリ内のファイルを、backup ディレクトリへコピーする 3.2 ディレクトリの同期 3.3 SOURCE で指定するディレクトリ名の最後にスラッシュを付けるか付けないか 3.4 ssh と組み合わせリモートマシンにコピーする 4 rsync サーバ 4.1 rsyncd.conf 4.2 デーモンモードで起動 4.3 rsync サーバとの同期方法 4.4 モジュールの指定例 4.5 rsync サーバのセキュリティ対策 4.5.1 同期元アドレスを限定する設定 4.5.1.1 設定例 4.5.2 同期時にユーザー認証を必要とする設定 4.5.2.1 rsync サーバ側の設定 4.5.2.2 クライアント

  • crontabの書き方

    crontabの設定方法をすぐに忘れるのでメモ代わりにまとめています。 ※最初にまとめてからかなり時間が経過したので、内容の精査とその間に勉強した項目を追加しました。 crontabを設定する方法 crontabを設定する方法には2通りの方法があるので説明をしていきます。 crontab -e ※コマンドで設定 crontab ファイル ※ファイルを読み込んで設定 「crontab -e」コマンドで設定 「crontab -e」コマンドを実行するとcronを設定する画面が表示されます。 「e」では無く、横にある「r」を誤って指定してしまうと、設定されているcronの内容が削除されてしまうので注意してください。 $ crontab -e 設定を編集する画面が表示されるので、下記のような書式で設定を行います。 00 * * * * /root/disk-space.sh ちなみに、設定している

    crontabの書き方
  • Bash Prompt HOWTO: ANSI エスケープシーケンス: 色とカーソル操作

    次のページ 前のページ 目次へ 5. ANSI エスケープシーケンス: 色とカーソル操作 5.1 色 すでに述べたように表示されないエスケープシーケンスは、\[\033[ と \] で囲んでやる必要があります。色のエスケープシーケンスの場合は 後ろに m\] をつけてやる必要があります。 もしこれから説明するプロンプトを試してみて、指定した色がうまく表示され ないなら、 /.Xdefaults ファイル(あるいはそれと同等のファイル)に "XTerm*Foreground: BlanchedAlmond" のような行がないか調べてください。 この前に!マークをつけることによって、コメントアウトすることができます。 これは、あなたがどのような端末エミュレータを使っているかにも依存します。 あなたの端末の色が上書きされる可能性のもっとも高いのがこのファイルです。 プロンプトにブルーのテキストを

  • cron で > /dev/null して椅子を投げられないための3つの方法 - 酒日記 はてな支店

    (タイトルは釣りです) いい加減、>/dev/null 2>&1と書くのをやめたらどうか - DQNEO起業日記 この記事のタイトルが twitter で流れてきたのを見て、「そうだ!出力を /dev/null に捨てるなんてとんでもないよね!」と思ってよく読んだら /dev/null に間違いなく捨てる方法だったのでつい crontabに > /dev/null 書いたら椅子投げる 2012-06-13 00:01:17 via YoruFukurou とつぶやいてしまったのですが、では出力を捨てないためにはどうすればいいのか。現時点での個人的ベストプラクティスを書き留めておきます。 デフォルト : メールで送る (MAILTO) せっかく cron daemon がログを捨てないためにわざわざメールで送ってくれるのに、それを > /dev/null で踏みにじるとはひどい。 とはいえ、

  • いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記

    はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニアインフラエンジニア)向けのものではありません。 年に数回crontabをいじるような現場(サーバに詳しくないアプリケーションプログラマが多数を占めるような現場とか、Webデザイナや非プログラマがcrontabをおそるおそるいじったりするような現場)を想定しています。 >/dev/null 2>&1 の問題点 この記法の問題点は、「覚えにくい、間違えやすい、間違ってても気づかない」ということです。 初心者を迷わせる要素がこんなにあります。 >/dev/nullは先か後か 1と2はどちらが先か &はどこに書くのか よって下記のように多種多様なミスが起こり得ます。 2>&1 >/dev/null >/dev/null 1>&2 >/dev/null 2>1& >/dev/null &2>1 これをぱっと見て

    いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記
  • Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる

    GNU/Linuxに慣れてると、よく打つtop/ps/netstatがOS X使ってるときにLinuxのそれと全然ちがう挙動で使いにくい。同じ挙動にするのman見ても無理そうなんで、なんとか同じように使えるのないか調べてみた。 top htopならLinuxとOS Xで同じように使えるのでhtopを使うとよさそう。 brew install htop-osx ps psのいい代替は見つからなかったけど、ps auxfのようにツリー表示したいときの代替はpstreeを使うとよさそう。 brew install pstree netstat netstatはnetstat -tnpaとかnetstat -tnplをよく使うけど、前者はlsof -nP -iTCP、後者はlsof -nP -iTCP -sTCP:LISTENで代替できそう。 $ sudo lsof -nP -i4TCP -sTC

    Linuxと挙動がちがってて使いにくいOS Xのコマンド(top/ps/netstat)の代替 - かみぽわーる
  • なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? - NO!と言えるようになりたい

    Unixを使っていると,/usr が全然ユーザー用じゃなくどう見てもシステムのための物だったり,/etc が事実上設定ファイル置き場となっていたり,/var がログファイル置き場となっていたりと,名が体を現していなくて奇妙な感覚を覚える.もっと分かりやすい名前の付け方があったんじゃないかと,Unixユーザーならば誰もが思うはずだが,これに対する解答がredditに投稿されており,その内容が非常に面白かったので,軽く翻訳してみた. Anyone know why /var and /etc weren't named something like /etc and /cfg? http://ja.reddit.com/r/linux/comments/cpisy/anyone_know_why_var_and_etc_werent_named/c0ua3mo 昔々,システム7が使われていてU

    なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? - NO!と言えるようになりたい
  • tailの結果をgrepの複数条件でフィルターしてリアルタイムで表示する - hoge256ブログ

    リアルタイムでアクセスログ等を表示するtailですが、単純に表示するだけではなく、grepで結果をフィルターしたい場合があります。そんな場合の技術メモです。 通常のログ監視等では-fをつけて次のような感じになります。 tail -f access.log grepでフィルターする場合はパイプで繋げます。 例えば、次の例では”.html”の含まれる行のみを表示します。 tail -f access.log | grep ".html" もちろん複数条件もできます。 次の場合は”.html”の含まれる行でかつ、”.gif”は含まれない行が表示されます。 tail -f access.log | grep ".html" | grep -v ".gif" ただし、上記の場合、grepが勝手に結果をバッファーしてしまい、ある程度たまってからでないと表示されません。 リアルタイムで表示されないと

  • 知らなかったyesコマンドの真の力 - harry’s memorandum

    yesコマンドとは? 'YES' - 妖精がみえてしまうジョンアンダーソンのプログレッシブバンドのことではありません。UNIX/Linux の yes コマンドを少しだけ語ってみたいと思います。 yesコマンドってなんですか?という人はまずUNIX/Linuxのターミナルで'yes'と入力してみましょう。 $ yes y y y^Cy がひたすら続きます。引数に文字列を渡せばその文字列をひたすら吐き出します。 $ yes "Cirque du Soleil" Cirque du Soleil Cirque du Soleil Cirque du Soleil Cirque du Soleil^Cこれ意味あんの?と思いたくなります。では何に使えるのでしょう? そうターミナルで対話的に行うときに なんと あの y を入力してくれるのです。 yesの例 まずテストファイル作成 $ for i i

    知らなかったyesコマンドの真の力 - harry’s memorandum
  • Unison File Synchronizer

    Note: The Unison project is now hosted on GitHub (here's a link). This web site is archival. Unison is a file-synchronization tool for OSX, Unix, and Windows. It allows two replicas of a collection of files and directories to be stored on different hosts (or different disks on the same host), modified separately, and then brought up to date by propagating the changes in each replica to the other.

  • find/xargsを使ったファイル・ディレクトリ名の一括置換/一括作成コマンド一覧

    業務で楽するためのUNIXテクニック集 ファイル・ディレクトリ名の一括置換/一括作成 この記事は2008年~2009年頃に翔泳社で連載していた「業務で楽するためのUNIXテクニック集」の原です。 はじめに この連載では、UNIX系OSをコマンドライン上から効率よく利用するために知っておくべきテクニックや、便利な小技を紹介していきます。 今回は、第0回、第1回で紹介したfind/xargsコマンド、シェルの変数展開、制御構造を利用した「ファイル・ディレクトリ名の一括置換」に関するテクニックを紹介します。 また、「ファイルやディレクトリの一括作成方法」「シンボリックリンクの作成方法」に関するテクニックも紹介します。「ファイル名の置換」テクニックを検証する際の、コマンド確認環境構築にご利用ください。 関連記事 シェル制御構造と正規表現の基礎 grepを使った便利なコマンド一覧 find/xar

    find/xargsを使ったファイル・ディレクトリ名の一括置換/一括作成コマンド一覧
  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。

  • tmpfsが/dev/shmをマウントしている件 - サーバー技術メモ

    前から気になってた。tmpfsって何? ノートLinuxでファイルシステムのディスク容量を見てみるとこうなってる。 # df -Th Filesystem Type サイズ 使用 残り 使用% マウント位置 /dev/hda2 ext3 19G 7.1G 11G 41% / tmpfs tmpfs 248M 0 248M 0% /lib/init/rw udev tmpfs 10M 64K 10M 1% /dev tmpfs tmpfs 248M 0 248M 0% /dev/shm /dev/hda1 ext3 938M 51M 840M 6% /boot /dev/hda3 ext3 17G 9.7G 6.1G 62% /homeFilesystemの中の/dev/hda達は、/etc/fstabに書いてるから納得だけど、 Typeがtmpfsなのがよくわからない。 仮想メモリベースの

    tmpfsが/dev/shmをマウントしている件 - サーバー技術メモ
  • SUIDとは

    SUIDは危険であるという話を聞いたことがありますが、そもそもSUIDが何なのか分かりません。具体的にSUIDとはどういったものなのでしょうか? SUIDとは、実行ファイルに設定される特殊な属性を意味します。UNIX系OSには特殊なファイル(ディレクトリ)属性として、SUID、SGID、Stickyの3つが存在します。それぞれについて、具体的な役割を説明していきましょう。 SUID SUID(Set User ID)は実行ファイルに設定される属性です。通常の実行ファイルは実行者の権限で動作しますが、SUIDが設定されていると実行ファイルの所有者の権限で動作します。 SUIDが使用される例としてはpasswdコマンドが挙げられます。パスワードを変更するということは、実際には/etc/shadowファイルを編集することになりますが、一般ユーザーには/etc/shadowファイルを変更する権限は

    s-shin
    s-shin 2014/05/02
  • Shebangという謎な事実上業界標準について

    Shebangとは、UNIXのシェルスクリプトの業界標準で、シェルスクリプトの一行目のコメントの、#!を意味する。sheが短母音か長母音か分からなかったので、英語ネイティブにたずねたところ、人によって意見が違う。短母音の方が多数派のようなので、一応シバンが近いものになるだろう。日語版のWikipediaでも、シバンとしている。この機能には他にも多数の名前があるが、もっとも有名なのが、Shebangだそうだ。 その業界標準的な文法は、以下の通り(ただし、後述するように、この文字列の扱いについては違いがある) #! 文字列 [改行] 普通、実行権限のついたファイルは、標準のシェルで実行されるが、このShebangがある場合は、#!から改行までの間の文字列を、後述するバラバラな方法で解釈して、execで実行し、その際の引数には元のシェルスクリプトファイルへのパスが指定される。 問題は、このsh

  • もうこわくない。SELinux

    第7回静岡ITPro勉強会インフラ部にて SELinux界のスーパースターSELinuxで著名な石川さん(@ishikawa84g)をお呼びして 「SELinuxハンズオン」を行いました。 キャーイシカワサーン #shizuinfra — kazuto_andoさん (@ando_ando_ando) 3月 31, 2012 部長も興奮しています。 開催日の3/31はかなりの暴風雨に見まわれ、 予定していた部長のお迎えがなくなり、私が迎えに行くことに。 SELinuxは運用まで行くとまぁ色々あるんだろうなぁと思い 泣きながらDisabledにしていました。※石川さんごめんなさい。 ハンズオンがあったお陰で、すっかりSELinuxが怖くなくなりました。 というよりSELinuxを悪者だと誤解していたようです。 資料と重複しますが、おさらいも兼ねて、ブログに残しておきます。 Fedora16を

    もうこわくない。SELinux
    s-shin
    s-shin 2014/04/09
  • suEXEC サポート - Apache HTTP サーバ

    suEXEC 機能により、Apache ユーザは Web サーバを実行しているユーザ ID とは 異なるユーザ ID で CGI プログラムや SSI プログラムを実行することができます。CGI プログラムまたは SSI プログラムを実行する場合、通常は web サーバと同じユーザで実行されます。 適切に使用すると、この機能によりユーザが個別の CGI や SSI プログラムを開発し実行することで生じるセキュリティ上の危険を、 かなり減らすことができます。しかし、suEXEC の設定が不適切だと、 多くの問題が生じ、あなたのコンピュータに新しいセキュリティホールを 作ってしまう可能性があります。あなたが setuid root されたプログラムと、それらから生じるセキュリティ上の問題の管理に 詳しくないようなら、suEXEC の使用を検討しないように強く推奨します。 始める前に この文書の