bashでは記号類をたくさん使うので、この書き方は何?と思っても検索でなかなか出てこないことがあると思う。 そこで知っていると便利なコマンドを残しておく。 随時追記予定。 確認に使用したbashのバージョンは以下のとおり。
lsofコマンドの使い方です。 lsofコマンドは、、、 PortやPID、プロセス名からファイルがオープンしている情報を表示するコマンド。 よく利用する場面 「netstat -an |grep LISTEN 」とかでListenしているPortを調べてそのPortが何のプロセスとかで動いているのかとかを確認するのに使っています! 使い方サンプル % lsof /var/log/system.log COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME tail 97529 USERNAME 3r REG 1,2 498299 12085861 /private/var/log/system.log
プログレスバーを簡単に表示できる pv について説明する。 インストール方法 自分の環境(debian 6.0.3)だと aptでインストール出来る。RHEL系ならここかな。 使い方 端的に言うと、「cat + 標準エラー出力にプログレスバー」という動きを取る。 f440@abhoth[10]:~$ yes | pv >/dev/null 529MB 0:00:08 [67.2MB/s] [ <=> ] 8秒で合計529MB、秒間67.2MBくらいで「y」の文字が pv を通り抜けてるのがわかる。 -lオプションをつけると行モードになり、転送量ではなく転送行数を調べられる。 f440@abhoth[10]:~$ yes | pv -l >/dev/null 435k 0:00:10 [45.9k/s] [ <=> ] 10秒で435行、秒間45900行くらいが通り抜けてるのがわかる。 他に
シェル上だと動くのにcron上だと動かない。 よく聞くお話ですよね。 大体はcron上と普段のシェル上で環境変数が違うために起こる問題です。 そういう時に使えるtipsを共有します。 個人のマシン上で適当に動かすようなcronだと みたいにしてログインシェルを間に噛まして環境変数を上書きして実行することでごまかしたりもできます。 これまた別の依存する箇所を増やすので 個人のマシンかrcファイルがちゃんと管理されているような状況以外ではオススメできません。 なのでcron上で実行される状況とほぼ同じ状況でスクリプトを実行してみましょう。 cron上では環境変数はほぼ空なので環境変数を空にしてみましょう。
#!/bin/bash # 既存プロセスの標準出力と標準エラーを奪う https://qiita.com/kawaz/items/96af6fa59fdf999b94bd # ターゲットのPID pid=$1 [[ -d /proc/$1/fd ]] || exit 1 # 出力先はttyやファイルを指定 out="$2" # 出力先の指定がない場合は現在のttyを出力先にする if [[ -z $out ]]; then # プロセスに紐付いたttyを取得する https://qiita.com/kawaz/items/bd33fe1e29876939dddb function search_tty() { local pid=${1:-$$} tty="" while [[ 1 -lt $pid ]]; do [[ -d /proc/$pid/fd ]] || break tty=$(
以前の記事「$HOME/.ssh/configを活用していますか?」では、設定ファイルを少し頑張って書けば普段のSSHライフが随分変わりますよ、と紹介しました。今日はその続編です。前回よりマニアックな設定を紹介します。 2段以上先のサーバにログインする Dynamic Forward機能を使う 共通設定をまとめて書く 2段以上先のサーバにログインする 目的のサーバにログインするために、踏み台的なサーバを経由しないと入れない環境があります。例えば、dmz経由でないとDBサーバにログインできない環境、というのは良くある構成でしょう。 このような場合に、ProxyCommandパラメータが利用できます。 上の設定で「ssh db1」とすると、sshでdmzに接続し、dmzから192.168.0.201へログインします。これを利用するには踏み台サーバにncコマンドが必要ですが、大抵の環境にインスト
こんにちは、hnwです。今更ながら自己分析すると、私はタイプ数を減らす工夫が好きなようです。今回は $HOME/.ssh/config ファイルについてのsshの非常に基本的な話題です。もちろん今回もタイプ数を減らすことが主眼です。 $ man ssh_config 言いたいことは上記の man page を見てもらえば全部書いてあるんですが、案外読んでいない人もいるんでしょうか、 $HOME/.ssh/config に書けば省略できることを毎回タイプしている人を稀に見かけます。 $ ssh -l webmaster dev3.example.com もし上記のようなコマンドを打っている人が居たら、次の $HOME/.ssh/config を参考に、自分の環境に合わせて設定してみてください。 Host dev3 HostName dev3.example.com Host dev3-wm
CentOSでインストールされるサービスの中で、頻繁に不要とされるサービスをまとめて無効にするレシピです。よく使うレシピに忍ばせておけば便利ですよ。 パッケージは適宜カスタマイズしてください。 %w[acpid auditd autofs avahi-daemon avahi-dnsconfd bluetooth conman cpuspeed cups dnsmasq dund gpm hidd ip6tables irda lvm2-monitor mcstrans mdmonitor multipathd pand pcscd psacct rawdevices readahead_early readahead_later restorecond saslauthd smartd wpa_supplicant ypbind yum-updatesd].each { |name| s
サーバーのリソースを見るにはグラフ化は重要ですが、推移ではなくリアルタイムな状況、例えば秒単位のスパイキーな負荷を見るには、サーバー上でvmstatやiostatなどの*statファミリーを叩く必要があります。 さて、vmstatはメモリの状況やブロック数単位のI/O状況は見られますが、バイト単位のI/O状況やネットワークの送信、受信バイト数を見ることはできません。 # vmstat 1 procs -----------memory---------- ---swap--- -----io----- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 3 1 0 4724956 355452 726532 0 0 54 484 3 3 1 0 99 0 0 2 0 0 47
動作モードが異なるということは、起動されるプログラムが違うということだ。Linuxでは、ランレベル別のディレクトリ(/etc/rc.d/rc?.d)にあるファイル(実際には各プログラムの起動スクリプトへのリンク)の名前により、各ランレベルで実行するプログラムを指定している。 例えば、ランレベル3の場合は/etc/rc.d/rc3.dにあるスクリプトが実行される。/etc/rc.d/rc3.dには、「Kと2けたの数字」で始まるファイルと、「Sと2けたの数字」で始まるファイルがある。「K」はKill、つまり実行されないスクリプトを表し、「S」はStart、つまり実行されるスクリプトを表す。KやSに続く数字は、実行されるスクリプトの優先順位だ。数字の小さいスクリプトから順に実行される。 $ ls /etc/rc.d/rc3.d/ K05innd@ K35dhcpd@ K
<2.電源を入れた時に、自動起動するプログラムを設定する> 注意!!ここは少々難しいので、よくわからない人は、ひとまずとばして次のページへ行きましょう。 電源を入れなおすと、ftpサーバーなどは自動起動しません。 これは不便なので、ftpサーバーは自動起動するようにしましょう。 また、apmdという省電力プログラムは、逆に自動起動しないようにしましょう。(サーバーなので、省電力にする必要なし) 手順としては、 ・自動起動する設定方法を確認 ・自動起動の設定 というかんじです。 (↓電源をいれたときの自動起動の設定) <電源をいれたときの自動起動の設定> [root@host /root]# ps ax | grep init 1 ? S 0:05 init [3]←この 3 という値が、自動起動するときのパラメータ [root@host /root]# chkconfig --list ・
odz buffer - プロセスが開いているファイルを確認する ls -l /proc/`pgrep -n java`/fd lsofでも調べられます。 lsof - list open files lsof うにょうにょと結果が出てきます。が、多すぎて訳わからん。 -pオプションでプロセスID指定 ### プロセスID指定 lsof -p 12345 ### バッククォート使うとこんな感じ lsof -p `pgrep -n java` -cオプションでプロセス名指定 lsof -c java -uオプションでユーザ指定 lsof -u hoge -iオプション [@IPアドレス:ポート番号] listenしてるポートを出力。指定したポートのみ表示することもできる。 lsof -i # Listenしてるのずらずら表示 lsof -i :22 # ssh lsof -i :22,80
端末で作業をするなら、特にsshなどでネットワーク後しに作業を行うなら、仮想端末管理ソフトウェアであるGNU Screenは必須といってよいでしょう。Ubuntu 10.04であれば、GNU Screenをさらに便利に使うためのアプリケーション「byobu」が最初から導入されているので、こちらを使っているユーザも多いと思います(byobuについては本連載72回参照、注1)。 今週のレシピは、GNU Screenと同じ仮想端末管理ソフトウェアである「tmux」ターミナルマルチプレクサを紹介します。 GNU Screenの利点とは GNU Screenの利点を簡単におさらいしておきましょう。GNU Screenには多くの機能がありますが、筆者が主に使っているのは以下のような機能です。 GUIのタブ機能のように、複数の端末を起動して切り替えられる 端末を画面分割して使うことができる 端末上で
When building mobile applications, it's vital to test them on real devices prior to releasing them to users. This page covers what you need to know, including the types of devices that you can use, and how to set one up for developing and debugging. Available Devices Here are some options for obtaining devices capable of testing your applications. Consumer devices It's likely that one of your loca
シェルからでも重い処理というのはちょこちょこあって、例えば超デカいログファイルを移動して圧縮したりというお仕事は世界中のあらゆる場所で毎日行われていたりする。コマンドラインからでも大量の圧縮済みログファイルをいっぺんに展開したい、とか。 あるディレクトリ以下に存在するたくさんのファイルを(圧縮済みのものを除いて)全部 bzip2 圧縮したい!と思ったら、とりあえずさくっと次のようにコマンドラインで叩けばいい。 $ find . -not -name '*.bz2' | xargs bzip2 これで、まあそんなに問題なく効率的にbzip2圧縮ができる。だがしかし。 最近は複数コアのCPUが普通に転がってるし、あまつさえHyperThreadingが有効になってたりしてOSから見える論理CPU数がハンパない。普通に8とかある。その一方で複数コアを使用してくれるコマンドというのはあんまりなくて
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く