読者です 読者をやめる 読者になる 読者になる

作業ノート

様々なまとめ、雑感など

Linux

コマンドの先頭にバックスラッシュをつける理由

RVMをインストールする機会があり、手順を確認してインストールした。 \curl -sSL https://get.rvm.io | bash -s stable このときcurlの先頭に\がついているのが気になり、付けない場合と何が違うのか調べた。 \つける理由は、shellのエイリアスの影響を受け…

curlコマンドでHTTPレスポンスのヘッダを確認する

以前クリックジャッキングの対応で、X-Frame-Optionsヘッダを出力するようにhttpdの設定を変更したが、その確認でcurlを使って確認した時の方法。 $ curl -s -D - http://www.example.com -o /dev/null HTTP/1.1 200 OK Accept-Ranges: bytes Cache-Control:…

CentOS 7.1にVNC Serverをインストールする

Oracleの環境を構築するために、RHEL7.1にGUIをインストールすることになったが、対象がリモートの環境になるのでVNCを使用する。 以下はRHELで構築することを考慮して、ひとまずCentOSを対象に調査したときのまとめ。 環境 自作したvagrant boxのCentOS 7.1…

VirtualBoxのゲストOSのディスク容量を増やす

VirtualBoxの環境下でゲストOSのハードディスク容量を増やす必要があり、その方法をまとめた。 容量を8GBから16GBに増やす。 環境 ホストOSはMac OS X Yosemite 10.10.3で、VirtualBoxのバージョンは4.3.26。ゲストOSの仮想ディスクはVDIで可変ディスク。 ゲ…

対象のパーミッションを調べる

bashスクリプトで、対象が期待したパーミッションであるか確認するときに使った方法。 $ stat -c %a /path/to/target -cオプションは出力内容フォーマット指定で、%aは、パーミッションを8進数で表現する。 スクリプトでは、 perm=`stat -c %a /path/to/targ…

makefileを作る

会社で管理しているシステムにC言語で作られたWebシステムがある。OracleのOCIを使ってDBに接続していろいろな処理を行う。10年ほど運用しているらしい。 このシステム、buildするときはshellスクリプトを実行するのだが、shellスクリプト内でgccコマンドを…

CentOSにyumレポジトリを追加する

開発環境の構築などで頻繁に導入するのでメモ。 EPEL EPEL - FedoraProjectを開く How can I use these extra packages? の節にあるリンク(EL5、EL6)のどちらかを開く 開いたページの下部に epel-release-XXXとあるので、それをダウンロード、もしくはURLを…

CentOSで固定IPを設定し、ホスト名を変更する

よく忘れるのでメモ。 IPの指定 $ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth1 HWADDR=... TYPE=Ethernet UUID=... ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=static IPADDR=192.168.56.14 NETMASK=255.255.255.0 BOOTPROTOの値をdhcpか…

git cherry-pickでマージコミットを適用する

$ git cherry-pick -m 1 ec6a3c5 マージコミットは、そのコミットの親が複数(マージ元、マージ先)あるので、そのままでは適用できない。 適用するときにどちらの親を選ぶか、それを指定するのが-mオプション。親コミットを選択して、親コミットとマージコ…

treeコマンドであるパターンに一致しないディレクトリを表示する

$ tree -d -I 'foo|bar|hoge' -Iオプションで指定する。ワイルドカードでの指定だが、|で条件を複数指定することができる。 参考 How do we specify multiple ignore patterns for tree command? - Unix & Linux Stack Exchange

grepコマンドに色をつける

$ grep --color=auto foo * colorオプションで該当部分やファイル名などを色づけする。 環境変数GREP_OPTIONSを設定すると、コマンド実行時に設定したオプションが適用される。 # ~/.bashrc export GREP_OPTIONS='--color=auto' # 実行時に--color=autoが適…

pgrepで実行中のバッチコマンドを確認する

pgrep -f foo.php -fオプションをつけると、実行しているコマンドライン全体に対して検索し、結果を表示する。 -fオプションをつけなければ、プロセス名のみを対象に検索し、結果を表示する。 参考 Linux - ps aux | grep よりもpgrepでプロセスを探すと楽 -…

VirtualBoxにCentOS 6.4 minimalをインストール

VirtualBoxにCentOS 6.4 minimal x86_64 をインストールした。 これをクローンのベースにする。クローンの作成と設定については以前、VirtualBoxでCenOSのクローンを作成する - 作業ノートにまとめた。 仮想環境 HDD: 8GB 固定サイズで作成 Memory: 512MB Ne…

半角スペースを含むファイルの対応

findコマンドなどでファイルの一覧を取得後、各ファイルに対して処理を行う時、対象ファイルにスペースがあるとそこでパスが区切られ、結果ファイルが存在しない、などのエラーになる。 それを回避するには、スクリプトを実行する際に一時的に区切り文字を変…

iptablesで、httpとhttpsの接続を許可する設定

VirtualBoxで CentOSの仮想環境を構築した時に行った設定。iptablesの設定を変更して、httpとhttpsでアクセスできるようにした。 1.現在の設定の確認 $ sudo /sbin/iptables -L --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source dest…

ntpdateコマンドを使った時刻同期のシェルスクリプト

ローカルの仮想環境を起動後、時刻のずれを修正するために作成したbashスクリプト。 ntpdateコマンド、sudoコマンドが実行できることが前提。 参考 ntpdが動いている環境で、ntpdateを実行する - 元RX-7乗りの適当な日々

VirtualBoxでCenOSのクローンを作成する

VirtualBoxで作成した仮想マシンをベースに新しい仮想マシンを用意する方法。 複製元の仮想マシン CentOS 6.4 minimal 64bit NICはNAT用とホストオンリーアダプター用の2つ Ubuntu版は、VirtualBoxでクローンを作成する - 作業ノートを参照。 クローン作成 1…

apache + php + curlで外部Webサーバにアクセスできなくてはまった

新しくサーバを構築したときにはまったのでメモ。 環境はphp5 + curl。Webページとしてアクセスしたときに、プログラムでcurlのモジュールを用いて外部のWebサーバにアクセスし、その結果に基づいて処理を行う。 起きた現象は、Webページとしてアクセスした…

httpプロセスで、利用しているファイルを調べる

$ sudo lsof -c httpd ファイルやプロセスの接続先IPなども確認できる。 参考 @IT:特定のポートをオープンしているプロセスを調べるには lsof:オープンしているファイルを調べる | Siguniang's Blog

usermodを使ってグループに追加するときの注意点

usermodを使えば、既存グループに追加できる、のだが。 te2u@ubuntu01$ sudo usermod -G 'sudo,www-data' te2u すでに何かしらの補助グループに属している場合、-Gオプションに明示的に指定しておかないと、その補助グループから外される。 特に対象ユーザが…

スティッキービット

時々、/tmpと同様のディレクトリを作成することがあるけど、そのたびにスティッキービットのことを忘れるため、そのまとめ。 # sticky bit $ chmod 1777 /tmp # user s-bit $ chmod 2777 /path/to/dir # group s-bit $ chmod 4755 /bin/foo sticky bitディレ…

コマンドでファイルのエンコーディングを調べる

nkfを使う。 $ nkf -g sample.php 参考 ファイルのエンコードを調べる。 - ペンギンと愉快な機械の日々

sortコマンドのnオプションとuオプション

まず、以下のファイルを用意する。 $ cat ip.txt 192.168.0.5 192.168.0.10 192.168.0.3 192.168.0.8 192.168.0.4 192.168.0.7 192.168.0.1 192.168.0.2 192.168.0.6 192.168.0.9そして、sortコマンドにnオプションとuオプションを併用して実行する。 $ sort…

特定のコマンドを繰り返し実行するwatchコマンド

# 30秒ごとにコマンドを実行する $ watch -n 30 'netstat -a 2>&1' スクリーンには標準出力が表示されるので、エラー出力をリダイレクトする。 via 秒間隔でコマンドを繰り返し実行し続ける

odで改行コードを確認

$ od -c file.txt via od - バイナリ表示 - 会津大学UNIXウィキ

ポートを使用しているプロセスを確認する

# lsof -i via ポートを使用しているプロセスを確認する:Linux最強Tips集

svnserveを別のportで起動する

同一サーバで複数のsvnserveを起動するときに。 # svnserve -d -r /var/svn --listen-port 3691

subversion-1.5.5で、クライアントのみをインストールする

subversion-1.5.5のインストール - 作業ノート で、subversion-1.5.5のインストール方法をまとめた。 しかし、apacheなしでインストールしなければならない状況が起きたので、その方法を調べた。 $ wget http://subversion.tigris.org/downloads/subversion-…

lsコマンドで表示する時刻を変える

lsの-lオプションとの組み合わせで、表示する時刻を変えることができる。 # 最終更新時刻(mtime) $ ls -l # 最終アクセス時刻(atime) $ ls -lu # 最終ステータス変更時刻(ctime) $ ls -lc via UNIXの部屋 コマンド検索:タイムスタンプ (*BSD/Linux)

バージョンの確認方法

lsb_releaseがあるときは以下。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 8.10 Release: 8.10 Codename: intrepid ないときはファイルを探す。 # redhad系 $ cat /etc/redhat-release Red Hat Enterpris…

findコマンドで特定のディレクトリを対象外にして検索する

subversionで管理しているソースを検索するとき、対象に.svnが含まれてしまうので、それを回避する。 $ find ./ -type d -name .svn -prune -o -print -pruneオプションをつけると、それ以下は検索しない。また、.svn以外のディレクトリで、特定のファイルを…

/tmpの自動削除

/tmpのファイルの削除は、/etc/cron.daily/tmpwatchによって行われている。 via @IT:/tmpのファイルがいつの間にか消えてしまう

diffでタブやスペースを無視する。

$ diff -BbwE old new

subversion-1.5.5のインストール

TorotiseSVNとandLinuxのsvnを併用しようとして、それぞれのsvnのバージョンに開きがあったため、andLinuxのsvnの一部のコマンドが使えなかったので、ソースからインストール。 $ wget http://subversion.tigris.org/downloads/subversion-1.5.5.tar.bz2 $ t…

特定の行の間のみを抽出する

$ sed -n 20,150p test.txt via カノログ: ファイルの指定行数から指定行数まで抜き出す(コメント欄)

ハードディスクのIO速度を計測する

$ sudo hdparm -Tt /dev/hda via avant-tokyo.com

ユーザ制限を恒久的に変更する

ulimitコマンドで値を変更できるが、以下の制約を受ける。 一度ログアウトすると元に戻る。 一部の項目は、値が変更できない。 ユーザ制限を恒久的に変更するには、 /etc/security/limits.conf で、項目を追加、編集する。 via

プロセスのパフォーマンスに関する調査

プロセスのパフォーマンスに関する調査で、見て回ったサイト一覧。 順不同。 第5回 カーネルをチューニングする | Think IT @IT:qmailのパフォーマンス・チューニング(1/2) フリーソフトウェア徹底活用講座(1) Gentoo Linux ドキュメント -- Gentoo Linu…

サーバの調査

カーネルのバージョンを調べる $ uname -a CPUを調べる $ cat /proc/cpuinfo via 自分のマシンの情報を調べる

パーティションのサイズを変更する

やったことはないけどメモ。 @IT:パーティションのサイズを変更するにはGNU Partedを使う。 ただし、インストールされているパーティションは変更できない。上記ページにGNU Parted専用のブートディスクの作成方法について、リンクがある。

初回ログインにパスワードを設定する

コンソールから初めてログインするとき、相手にパスワードを設定させる方法。 $ sudo useradd foo -p '' $ sudo chage -d 0 foo via 初回ログイン時にパスワードの変更要求をするには − Linux Square − @IT

daemontoolsのインストール

ディレクトリ作成とパーミッションの設定 daemontoolsのダウンロード アーカイブの展開、パッチを当てる ビルド・インストール ディレクトリ作成とパーミッションの設定 $ sudo mkdir /package $ sudo chmod 1755 /package daemontoolsのダウンロード $ cd /…

ramdiskを使用する

$ sudo vi /etc/fstab ------------------------------------------------------------------------------- /dev/shm /media/ram tmpfs defaults 0 0 ------------------------------------------------------------------------------- $ sudo mkdir /media…

デーモンの管理

RedHatなどではchkconfig、Debianなどではupdate-rc.d。いざという時に思い出せない。 via || Not Found ||

logrotateの設定を確認する

/var/log/maillogが肥大化していた。どうやら一年以上のログが保存されているようだ。 さらに、/var/log/maillog.1などのバックアップファイルが見つからない。 最初、logrotateが動いていないのかと思い、cron周りを調べる。 # ls /etc/cron* /etc/cron.dai…

ユーザ制限を確認する

$ ulimit -a via 第5回 カーネルをチューニングする | Think IT 404 - エラー: 404

逆引き確認

nslookupコマンドで逆引きするIPを指定する。 $ nslookup 192.168.0.1 via @IT:Windows TIPS -- Tips:nslookupの基本的な使い方(イントラネット編)