タグ

Tipsとlinuxに関するmoritataのブックマーク (49)

  • なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記

    会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSREをマルっとPDF化する SpotBugsのViolationレポートをMerge Requestのコメント投稿する ぼくの互換性についての考え方 何で書くか シェルスクリプトをうまく書くには ShellCheckを使う バッドパターンとその修正 line-by-lineの処理が多い lsを使う ls /directory | grep mystring ls | grep -v 'log$' lsの結果をループさせる 良いシェルスクリプトを書くためのTIPS set -euする 文字列は基的にクオートする 局所変数にはlocalを使う 定数は読み取り専用

    なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記
  • ソケットプログラミングのTips

    概要 ソケットプログラミングに関するTipsをメモレベルで記載する。 切断検知と経路切断 TCPコネクションの切断検出 対向がclose()、shuttdown()、プログラム終了等をしたときの切断検出について。 OSをシャットダウンさせた場合も通常はアプリケーションの終了処理が走り、正常な切断が動く。 受信側の切断検出は、recv()がlength==0で返ってきたとき、または、errno==ECONNRESETとなる。(ECONNRESETはRSTによって切断された場合) 送信側の切断検出は、切断された後2回目のsend()がエラーとなる。 ※相手がclose()→こちらがsend()→相手にパケットが飛ぶが待ち受けプログラムがいないためRST応答が来る→もう1度send()→エラー ※send()自体はカーネルの送信バッファにデータコピーするだけなので、TCPレベルの応答(送信完了)

    ソケットプログラミングのTips
  • Linux perfで快適に計測するためのtips - Qiita

    これがあるのとないのとでは分かりやすさが全然違うので、perfを使う時は常に入れておくようにすると便利です。 2. --call-graph は fp 以外で使う 上記の問題を解決すると perf record + perf report では何が呼ばれているかおおむね分かることが多いのですが、call graphを出すために perf record -g をすると [unknown] というのが出てきてしまうことがあります。(以降の計測結果はRack::Utils::HeaderHashを使ったRuby VMのベンチをRubyのmasterで走らせたものです) Samples: 38K of event 'cycles:ppp', Event count (approx.): 271180000 Children Self Command Shared Object Symbol - 1

    Linux perfで快適に計測するためのtips - Qiita
  • .tmux.confをごにょごにょする - mizchi log

    tmuxの設定をいじってたらこんな感じに 昨日はInconsolata使いたくてiTerm使ってみたが、重すぎて諦めた。今はデフォルトのTerminalにTakaoフォントを使っている。 Macのターミナルも日フォントと英フォントを分離できたらいいんだけどなぁ 混ぜ物を作るのも面倒だ .tmux.conf 基はMANで読んで、ソースコード検索で引っかかったページからコピペコピペ # Prefix set-option -g prefix C-t # View set -g status-interval 5 set -g status-left-length 16 set -g status-right-length 50 set -g status-bg black set -g status-fg white set -g status-left '#[fg=cyan,bold]

    .tmux.confをごにょごにょする - mizchi log
  • bashスクリプトをデバッグする方法 - Qiita

    #!/bin/bash exec 5> debug_output.txt BASH_XTRACEFD="5" PS4='$LINENO: ' set -x するとdebug_output.txtにログが出力される。 exec 5>はファイルディスクリプタ5番をdebug_output.txtにするという意味。 PS4はトレース出力の際に表示されるプロンプト。$LINENOにより行番号を表示している。 set -xは実行するコマンドをトレース出力させる。 元記事にはbashdblog4bash、Eclipse、Visual Studioo Codeを使う方法なども紹介されているが、これが一番手軽でほとんどの場合十分だと思う。 Register as a new user and use Qiita more conveniently You get articles that match

    bashスクリプトをデバッグする方法 - Qiita
  • Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ

    主にアプリケーション開発者向けに、Linuxサーバ上の問題を調査するために、ウェブオペレーションエンジニアとして日常的にやっていることを紹介します。 とりあえず調べたことを羅列しているのではなく、当に自分が現場で使っているものだけに情報を絞っています。 普段使っているけれども、アプリケーション開発者向きではないものはあえて省いています。 MySQLNginxなど、個別のミドルウェアに限定したノウハウについては書いていません。 ログインしたらまず確認すること 他にログインしている人がいるか確認(w) サーバの稼働時間の確認 (uptime) プロセスツリーをみる (ps) NICやIPアドレスの確認 (ip) ファイルシステムの確認(df) 負荷状況確認 top iostat netstat / ss ログ調査 /var/log/messages or /var/log/syslog /

    Linuxサーバにログインしたらいつもやっているオペレーション - ゆううきブログ
  • Lessの便利な使い方

    最近 Stop using tail -f (mostly) や 「tail -f」を使うのは情弱、情強は「less +F」を使う などless押しな記事が幾つか上がっているんだけど、タイトルが煽り気味なのか若干反感を呼んでいるようなのでless派が職場で肩身の狭い思いをしないようにもう少し便利な使い方を紹介したい。 tail -fの様なScroll forward less +Fで起動またはless起動中にF 元記事にもあるtail -fと同様の振る舞い。正直この機能と検索だけでいいのであればtailで十分。lessの便利なところは様々な機能との組み合わせにあって、これから紹介する機能は基的にこのモードと組み合わせが可能だ。あと、less開いてFのほうがタイプが面倒くさくないのでおすすめ。 1行で表示する (改行しない) less -Sで起動またはless起動中に-Sr(-Sでモード切

    Lessの便利な使い方
  • 【Vim入門】ノーマルVimで使えると便利かもなコマンド10つ - Qiita

    この記事は Vim Advent Calendar 2014 の 17 日目の記事です。 16日は Kuniwak さんの「vimrc アンチパターンを自動でチェックする」でした。(私の vimrc も多くのアンチパターンがあったので、戒めていくとともに、vint でチェックしようと思います。。) プラグインなしのvimをつかう 先日のVACでも紹介されていたincsearch含め、プラグインは便利で私も色々使っているのですが、あえて、今回はVim(7.2以上)であれば使える基コマンドで、私自身がよく使っているコマンド(Exコマンド含む)を10つに絞って紹介したいと思います。 #最近、サーバー系の作業が増えて、プラグインなしのvim使うことも増えてきました。 人によってなじんだキーバインドの設定はあるかと思いますが、実際のところこれだけ覚えとけば(プレーンなvimでも)それなりに不自由し

    【Vim入門】ノーマルVimで使えると便利かもなコマンド10つ - Qiita
  • sudo による管理者権限の付与

    サーバーの管理者権限を得るコマンドとして、su コマンドが用意されていますが、これはログインするたびにroot のパスワードを入力しなくてはならないという点で、ネットワーク上にroot のパスワードが流れたり、パスワード入力を監視されたり(覗かれたり)するなどの可能性があり、セキュリティ上の観点から多少の不安が残ります。そこで使用するのがsudo(superuser do) コマンドで、指定した一般ユーザに対して特定のroot コマンドを付与することで代理のroot ユーザとしてサーバーを管理させる事ができるようになります。自宅サーバーを構築している皆さんであれば最大の魅力は、やっぱりroot パスワードを何度も入力しなくても済むことでしょうかね…(^_^;) ■sudo のインストール sudo はほとんどのLinuxディストリビューションにはデフォルトでインストールされています。以下の

  • 遅レス。 - Apache mod_perl - MaxClients の値に注意

    やっちまった……。きっとだれもが通る道。というかとっくに FAQ か。 mod_perl における C10K problem" - 竹迫良範 恥ずかしながら、知らなかったッス。これって mod_ruby でもありうる話だよね? Apache で mod_perl を使用する時は MaxClients 設定に注意! Apache の MaxClients(子プロセスの最大数) デフォルト設定は 150。 他のモジュールにも影響されるが、mod_perl 組み込み時、子プロセス1つのメモリサイズが 20〜30MB 程度になる。 よって、同時接続数 150 までアクセスされると 3G から 4.5G メモリを喰うことになる。 そんなメモリねぇ〜www なので、スワップ・スワップ(SWAP x SWAP と書いてみたがヤな感じだった)。swap もオーバーしちゃったり。 対策: MaxClient

    遅レス。 - Apache mod_perl - MaxClients の値に注意
  • 最近知ったLinux/UNIXの小技 - harry’s memorandum

    最近知って結構ショックを受けた。 touch hoge.txt と似たような機能。*1 $ > hoge.txt $ ls -l hoge.txt -rw-r--r-- 1 root root 0 Jul 10 03:15 hoge.txt lessでtail -f ができる。 $ sudo less +F /var/log/messages SSHでリモートサーバに対して色々 リモート先のファイルをsortして比較。パスフレーズなしにするか、ssh-agentを使用するかしてください。 $ diff <(sort /home/user/.bashrc) <(ssh user@hostname "sort /home/user/.bashrc") リモートサーバのファイルを編集 $ vim scp://user@hostname//home/user/.bashrc sambaのコマンドで

    最近知ったLinux/UNIXの小技 - harry’s memorandum
  • Stray Penguin - Linux Memo (Xen)

    1台のマシン上で Linux や別の OS を複数稼働させることのできる仮想化技術。最近は VMWare もかなりパフォーマンスが改善されたが (※)、Xen は OS上のOS だということをほとんど意識させないオーバーヘッドの少なさが売りだ。また、ひとつの基幹サービス (たとえば Webサービス) を OSごと根こそぎ分離するという用途においては、Xen は chroot の究極のカタチであるとも言える。Xen では、ゲストOS (子供) とホストOS (親) はカーネルもライブラリもそれぞれで持ち、ゲストは他のゲストやホストのリソースにほとんど影響を与えられないようにできているからだ。 また、例えば Apache HTTPSサービスと NFSサービスを提供したい時、ゲストOS 1 は Apache 専用にして CPU を 2個割り当ててメモリ割り当ても多めに、ゲストOS 2 は NFS

  • topコマンドでマルチコアなCPUの状況を確認する - RX-7乗りの適当な日々

    ということがしたくて、よく"man top"している気がするのと、意外と知られていないと思いまして。 # その前に需要がないという説もあるし、システム管理者向けかも。 top - 20:53:14 up 7:49, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 150 total, 2 running, 148 sleeping, 0 stopped, 0 zombie Cpu(s): 0.8%us, 1.3%sy, 0.0%ni, 97.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3064832k total, 1412824k used, 1652008k free, 135808k buffers Swap: 1895416k total, 0k used, 1895416k free, 6015

    topコマンドでマルチコアなCPUの状況を確認する - RX-7乗りの適当な日々
  • ウノウラボ Unoh Labs: 快適なsshクライアント生活

    はじめまして、HIROKIです。 大規模コンテンツの開発に携わっていると数多くのサーバにsshでログインすることになります。その手間を軽減するために $HOME/.ssh/config を設定してみます。 sshコマンドを簡略化 例えば dev01.labs.unoh.netというサーバにsshでログインするのであれば、 $ ssh -i ~/.ssh/id_rsa.unoh hiroki@dev01.labs.unoh.net という感じのコマンドでログインしているかと思います。 これを $ ssh dev01 でログインできるように設定してみましょう。 Host dev01 User hiroki HostName dev01.labs.unoh.net IdentityFile ~/.ssh/id_rsa.unoh 秘密鍵を複数使いわけている人はIdentityFileを指定すると便

  • 俺の .screenrc が火を吹くぜ

    たまにはこういう生産性のない話題もいいよね! さて、まあおまえらも GNU Screen くらいは使ってるとおもうわけだが。こいつがまたひどいバッドノウハウでさあ。ほとんどの人が他人の .screenrc をコピペしてきて済ませちゃうんだよね。俺くらいカスタマイズして使ってるやつとか見かけないわけよ。当に。CodeRepos 見ても俺に比肩する規模の .screenrc 書いてる奴はいないもん。で、たまーにプロジェクタに表示して見せたりすると「それどうなってるんですか」とか。まあ一般人のおまえらは info なんか読まないよね。そうだよね。 でも今日は気が向いたから line-by-line で何が起こってるか解説しちゃうよ。 .screenrc の前にスクリーンショットの解説をちょっとだけ これが普段俺が使ってるノート PC の画面である。これで全画面。OS は普通の Ubuntu で

    俺の .screenrc が火を吹くぜ
  • はじめての自宅サーバ構築 - Fedora/CentOS - yum plugin「downloadonly」の導入

    ■ downloadonlyとは・・・ downloadonlyとはrpmパッケージをダウンロードのみ行うプラグインです。(インストールは行いません) ダウンロードのみでは意味がないように思えますが、rpmパッケージを保存(バックアップ)したい場合などに便利です。 ■ yum plugin「downloadonly」のインストール 「downloadonly」のインストール 【FedoraCore5 から Fedora10 / CentOS5 の場合】 # yum -y install yum-downloadonly 【Fedora11 以降 / CentOS6 の場合】 # yum -y install yum-plugin-downloadonlyプラグインを使用するにはyumオプションに「--downloadonly」を付与します。 例として「dovecot」のダウンロードのみ行っ

  • » セキュアなサーバを作るために最低限やっておくこと: エスキュービズム ラボ Blog

    Recent Entries セキュアなサーバを作るために最低限やっておくこと Yahooキーワード抽出APIライブラリ テスト駆動開発 (test driven development: TDD) のすすめ GoogleAnalyticsAPI on EC-CUBE 土日で作るコンパイラ OPEN ERPに挑戦3 OPEN ERPに挑戦2 OPEN ERPに挑戦 ERPはたくさんあれど・・・ OpenGLで3D、やってみよう Recent Comments No Responses. Recent Trackbacks テスト駆動開発 (test driven development: TDD) のすすめ 06/11 » Yahooキーワード抽出... みなさんはサーバを管理するときに、何を一番気にしますか? 人によって程度の差はあるのでしょうが、誰もが気になるのが「セキュリティ」でしょ

  • マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー

    ちょっと煽り気味のタイトルですが、CPU がマルチコアになり 2個、4個と増えていく中 Linux の負荷の指針になるロードアベレージをどう読むべきか、という話です。気になったところを少し調べたのでそのまとめを。 http://d.hatena.ne.jp/naoya/20070222/1172116665 でも書いたとおり、Linux のロードアベレージは「ロードアベレージは過去1分、5分、15分の間の実行待ちプロセス数の平均数 = 実行したくても他のプロセスが実行中で実行できないプロセスが平均で何個ぐらい存在してるか」を示す値です。ボトルネックが CPU、メモリ、ディスク等々どこにあるかは関係なく、仕事の実行までにどれぐらい待たされているかを示す値なので、システムのスループットを計測する指標の入り口になる値です。 このロードアベレージですが、実装を見るとランキュー(待ち行列)に溜まった

    マルチコア時代のロードアベレージの見方 - naoyaのはてなダイアリー
  • GIGAZINE - GIGAZINEのLoadAvarageを「27」から「2」へ下げた方法

    ここ3日間ぐらい超絶な重さだったのはサーバに物理的トラブルが発生したからではなく、単純に閲覧者数が満員御礼となり、各時間で倍増したためです。LoadAverageはひどいときで15分間の平均値「27.1」程度。瞬間最大風速だともっと高いです……明らかにまずい。 というわけで、Apacheのデフォルト設定で今までは大丈夫だったのですが、ついに高負荷サイト用の設定に変更せざるを得なくなりました。 そのため、実際に行った対処方法は以下の通り。1日30万PV近い動的サイトの高負荷を緩和させる方法として参考になれば幸いです。 まず大前提として、既にDNS逆引きや.htaccessの余計な読み込みなどは停止させていました。下記ページに書いてあることは実行済み。 @IT:Apacheパフォーマンス・チューニングの実践(1/2) この状態で負荷が15分平均で「27」になっていたわけです。 また、LoadA

    GIGAZINE - GIGAZINEのLoadAvarageを「27」から「2」へ下げた方法
  • vi screen

    LAST UPDATED Jul/21/2007 1.設定ファイル screenは各ユーザごとに設定ファイルを置くことができます。 設定ファイルはホームディレクトリ直下の .screenrcです。 以下が標準的な設定ファイルの例です。 (ただし行頭の番号は説明のためのものです) 1: defencoding eucJP 2: escape ^z^z 1行目は使用する漢字コードの指定です。上の例ではeucを指定しています。jisやsjisを指定することもできます。自分の環境に合わせて設定してください。 screen-3.9.11では、以前のバージョンのdefkanji、kanjiに代わって defencoding encodingコマンドを用います。詳しくは man pageを参照してください。 2行目はエスケープキャラクタのの指定です。エスケープキャラクタとはscreenにコマンドを与える