ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2011年2月17日木曜日

PDF を分割する。

私は通勤中に携帯電話で PDF を閲覧しているのですが、ファイルサイズが 2MB という制限があるため、大きなサイズの PDF は分割しなくてはなりません。
pdftk というソフトが使いやすそうです。

オーナーパスワードがかかっている場合は、PDF の編集ができません。pdftk は、オーナーパスワードを指定してパスワードを解除できるようですが、パスワードを知らない場合は、どうにもなりません。
そこで、ImageMagick の convert コマンドを使って、画像として取り出して PDF を分割することにします。


$ convert -authenticate USER_PW -density 100 INPUT.pdf\[0-10\] OUTPUT.pdf

上記のコマンドは、ユーザーパスワード USER_PW を指定しています。
画面の細かさは -density オプションの値で変更できます。
入力: INPUT.pdf
抽出するページ: 0〜10
出力: OUTPUT.pdf
になります。


参考

2011年2月12日土曜日

.ssh/config

OpenSSH (クライアント) の設定です。

[~/.ssh/config]
ServerAliveInterval 15

Host example
AddressFamily inet
HostName host.example.com
Port 12345
User non-sugar


参考

2011年2月5日土曜日

VIM の設定

  • タブの可視化と行末空白の可視化
    set list
    set listchars=tab:>-,trail:-,nbsp:%,extends:>,precedes:<

(作成中...)

参考

2010年10月17日日曜日

シェルスクリプトで四則演算

シェルスクリプトで四則演算をする方法

乗算は、\* のようにエスケープする必要があります。

(例)
MINUTES="`expr $2 \* 60`"

参考

2010年8月21日土曜日

Linux で NIC のステータスを確認する方法

Linux で NIC のステータスを確認する方法です。


インストール

ethtool を使います。Ubuntu の場合、以下のようにしてインストールできます。

$ sudo apt-get install ethtool


使い方
  • Speed/Duplex のステータス確認
    $ sudo ethtool eth0
  • Speed/Duplex のステータス確認 (mii-tool を使う場合)
    $ sudo mii-tool -v eth0

Wake on LAN を使う

1. まず、BIOS の設定で Wake on LAN を有効にします。

私の使用している ASUS M3A78 PRO (BIOS 1506) では、
Power > APM Configuration > Power On By PCIE Devices: Disabled -> Enabled
に変更することによりオンボードの NIC から起動できるようになりました。

2. 次に、OS で Wake on LAN の設定をします。

Wake on LAN で MagicPacket に反応するようにするには、wol のオプションが "g" になっていることを確認します。

$ sudo ethtool eth0 | grep Wake-on
Supports Wake-on: pumbg
Wake-on: g

なっていなければ、以下のようにして変更できます。

$ sudo ethtool -s eth0 wol g

システム起動時に毎回設定できるように /etc/rc.local に加えておきます。

$ egrep -v '^#|^\s*$' /etc/rc.local
ethtool -s eth0 wol g
exit 0

2010年8月16日月曜日

Linux で IPv6 を試してみる

Linux で IPv6 を試してみました。
まずは、基本となるコマンドを調べています。
Ubuntu 10.04 で確認してます。

ufw (Firewall)

Ubuntu で UFW を有効にしている場合は、デフォルトで IPv6 のパケットを DROP します。
これを変更します。

$ sudo vi /etc/default/ufw
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
IPV6=yes
---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----

$ sudo ufw allow 22/tcp #### 許可する通信を設定する。
$ sudo ufw disable && sudo ufw enable #### ufw を再起動する。

基本的なコマンド
  • アドレスの確認
    $ /sbin/ip -6 addr sh dev eth0
    $ /sbin/ifconfig eth0 | grep inet6

(作成中...)



参考

2010年3月20日土曜日

Network Emulation: netem

  • ネットワーク遅延を簡単に検証できる方法が無いかと探していたら、Linux で簡単にできそうだということが分かりました。
早速、Linux KVM で Ubuntu 9.10 (kernel: 2.6.31-20-generic-pae) を動作させて、実験してみました。


[JeOS11]eth0----eth0[JeOS13]eth1----eth0[JeOS12]

※ JeOS13 を NIC 2枚挿しにして、ルータとして機能させ、ネットワークの遅延などを発生させます。

/etc/sysctl.conf で、"net.ipv4.ip_forward=1" として、再起動すればルーティングできるようになります。


使い方
  • eth0 からの出力を 1000ms 遅延させる
    $ sudo tc qdisc add dev eth0 root netem delay 1000ms
    $ tc qdisc show dev eth0 ## 設定の確認
    qdisc netem 8001: root limit 1000 delay 1.0s
  • eth0 からの出力を 1000ms±100ms 遅延させる
  • $ sudo tc qdisc change dev eth0 root netem delay 1000ms 100ms
    ## 既に設定が存在するときは、add ではなく change を使う。
    $ tc qdisc show dev eth0
    qdisc netem 8001: root limit 1000 delay 1.0s 100.0ms
  • eth0 からの出力の設定を削除する
    $ sudo tc qdisc del dev eth0 root
    $ sudo tc qdisc show dev eth0
    qdisc pfifo_fast 0: root bands 3 priomap 1 2 2 2 1 2 0 0 1 1 1 1 1 1 1 1
  • eth0 からの出力を平均 1000ms で正規分布に従い遅延させる
    $ sudo tc qdisc add dev eth0 root netem delay 1000ms 200ms distribution normal
    $ tc qdisc show dev eth0
    qdisc netem 8003: root limit 1000 delay 1.0s 200.0ms
  • eth0 からの出力を 10% パケットをロスさせる
    $ sudo tc qdisc add dev eth0 root netem loss 10%
    $ tc qdisc show dev eth0
    qdisc netem 8002: root limit 1000 loss 10%
  • eth0 からの出力を 500ms±100ms 遅延、10% パケットをロス、10% 複製する
    $ sudo tc qdisc add dev eth0 root netem delay 500ms 100ms loss 10% duplicate 10%
    $ tc qdisc show dev eth0
    qdisc netem 8003: root limit 1000 delay 500.0ms 100.0ms loss 10% duplicate 10%


参考

2010年2月25日木曜日

Proxy ARP

Proxy arp について調べています。

■ ネットワーク構成

[10.0.0.10]----F0/1[Cisco]F0/0----{192.168.1.0}----eth0[Ubuntu]eth1----[10.0.0.11]

■ Cisco

int fa0/0
ip address 192.168.1.1 255.255.255.0
no ip proxy-arp
!
int fa0/1
ip address 10.0.0.1 255.255.255.0
ip proxy-arp ! デフォルト値
!
ip route 10.0.0.11 255.255.255.255 192.168.1.2

■ Ubuntu
[/etc/network/interfaces]
auto eth1
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 10.0.0.1
netmask 255.255.255.0
up echo 1 >/proc/sys/net/ipv4/conf/eth1/proxy_arp
up route add -host 10.0.0.10 gw 192.168.1.1
down echo 0 >/proc/sys/net/ipv4/conf/eth1/proxy_arp
down route del -host 10.0.0.10 gw 192.168.1.1


参考

2009年9月13日日曜日

ssh でキープアライブを送信する

ファイアウォールや NAT BOX には、セッションを管理するためのタイマがあるので、無通信時間が続くと接続を切られてしまいます。
ssh で接続しながら、作業しているといつの間にか接続が切れていることがある。

OpenSSH には、"ServerAliveInterval" というオプションが存在する。既定値は、0 で無通信時にサーバにメッセージを送らない。15 を指定すれば、15 秒ごとにサーバにメッセージを送ることになる。
"ServerAliveCountMax" の既定値が 3 なので、"ServerAliveInterval" に 15 を指定した場合、約 45 秒間サーバからのレスポンスが無ければ、ssh のセッションを切断する。

※ このオプションは、ssh2 の場合のみ意味がある。
$ ssh -o ServerAliveInterval=15 user@remote-host
とするか、config ファイルにオプションを書き込んでおく。
$ echo "ServerAliveInterval 15" >>~/.ssh/config
$ chmod 644 ~/.ssh/config

2009年9月12日土曜日

vmstat でサーバの負荷状況を調べる

Linux サーバの負荷状況を調べ、ボトルネックとなっている原因を特定するために、vmstat の統計情報を利用する方法です。

統計情報の取得

まず、cron を使って一分毎に vmstat の出力を時刻を加えてファイルに書き込みます。

$ mkdir /home/nonsugar/vmstat
$ crontab -e
---- ---- ---- ---- ---- ---- ---- ----
*/1 * * * * (echo -n `date "+\%Y/\%m/\%d \%H:\%M:\%S "`; vmstat | tail -n 1) >>/home/nonsugar/vmstat/`date +\%Y\%m\%d`_vmstat.log
---- ---- ---- ---- ---- ---- ---- ----
(※ 注意: crontab では、% をバックスラッシュでエスケープする必要があります。)
gnuplot を使用して、グラフ化する

gnuplot を使用してグラフ化します。Windows なら、Cygwin をインストールして使用できます。

gnuplot をインストールします。(Ubuntu の場合)
$ sudo apt-get install gnuplot

(作成中...)

参考

2009年9月11日金曜日

ポートを使用しているプロセスを調べる

Linux の場合は、"lsof -i" を使用する。
例えば、22/tcp を使用しているプロセスを調べるには、以下のようにする。

$ sudo lsof -ni :22
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 3001 root 3u IPv4 6479 TCP *:ssh (LISTEN)
sshd 3001 root 4u IPv6 6481 TCP *:ssh (LISTEN)
sshd 7884 root 3r IPv4 29352 TCP 192.168.1.10:ssh->192.168.11.10:1849 (ESTABLISHED)
sshd 7892 nonsugar 3u IPv4 29352 TCP 192.168.1.10:ssh->192.168.11.10:1849 (ESTABLISHED)

Windows の場合は、"netstat -o" を使用する。
>netstat -ano | find ":22 "
TCP 0.0.0.0:22 0.0.0.0:0 LISTENING 1208
TCP 192.168.11.10:1849 192.168.1.10:22 ESTABLISHED 2128
PID がわかるので、タスク マネージャを使って、PID のプロセス名を調べる。
PID の列が無い場合は、メニュー > 表示 > 列の選択... で、チェックを入れる。
この例では、PID = 1208 は、"sshd.exe"。PID = 2128 は、"ssh.exe"。

参考

2009年8月17日月曜日

LVM のサイズ拡張

RHEL 5.3 で ext3 パーティション (/var) をオンラインで拡張してみた。

# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VG00-root
9.7G 5.0G 4.3G 55% /
/dev/mapper/VG00-var 3.9G 390M 3.3G 11% /var
/dev/mapper/VG00-backup
25G 17G 6.1G 74% /backup
/dev/sda1 99M 55M 40M 59% /boot
tmpfs 1.9G 0 1.9G 0% /dev/shm
# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VG00 lvm2 a- 67.62G 22.62G
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
backup VG00 -wi-ao 25.00G
root VG00 -wi-ao 10.00G
swap VG00 -wi-ao 6.00G
var VG00 -wi-ao 4.00G
# lvextend -L 16G /dev/VG00/var
Extending logical volume var to 16.00 GB
Logical volume var successfully resized
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
backup VG00 -wi-ao 25.00G
root VG00 -wi-ao 10.00G
swap VG00 -wi-ao 6.00G
var VG00 -wi-ao 16.00G
# resize2fs /dev/VG00/var
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/VG00/var is mounted on /var; on-line resizing required
Performing an on-line resize of /dev/VG00/var to 4194304 (4k) blocks.
The filesystem on /dev/VG00/var is now 4194304 blocks long.
# df -h
Filesystem サイズ 使用 残り 使用% マウント位置
/dev/mapper/VG00-root
9.7G 5.0G 4.3G 55% /
/dev/mapper/VG00-var 16G 393M 15G 3% /var
/dev/mapper/VG00-backup
25G 17G 6.1G 74% /backup
/dev/sda1 99M 55M 40M 59% /boot
tmpfs 1.9G 0 1.9G 0% /dev/shm

参考

2009年7月23日木曜日

DKMS

DELL のサーバに Linux のドライバをインストールするときに使用されているフレームワーク。
勉強中。

  • ビルド
    # dkms build -m megaraid_sas -v v00.00.03.21
  • インストール
    # dkms install -m megaraid_sas -v v00.00.03.21
  • ステータス
    # dkms status -m megaraid_sas
    # modinfo megaraid_sas (実際にロードしているモジュールを確認する)
  • インストール時に "linux dd" で読み込ませる FD イメージを作成
    # dkms mkdriverdisk -m megaraid_sas -v v00.00.03.21 -k `uname -r` -d redhat
参考