linuxの最近のブログ記事

UNIXのtailコマンドがログを表示するのに便利。
Windows用のtailコマンドは、
http://unxutils.sourceforge.net/(ダウンロードはリンク切れ?)
GUIベースは
http://tailforwin32.sourceforge.net/

tail -f [ファイル]
tailのヘルプ
使用法: tail [オプション]... [ファイル]...
各々の FILE の最後の 10 行を標準出力に書き出します.
複数の FILE が指定された場合は, ファイル名がヘッダ情報として出力されます.
FILE が指定されないか, FILE が - の場合は, 標準入力が読まれます.
長いオプションに必須の引数は短いオプションにも必須です.
      --retry              keep trying to open a file even if it is
                           inaccessible when tail starts or if it becomes
                           inaccessible later; useful when following by name,
                           i.e., with --follow=name
  -c, --bytes=N            output the last N bytes
  -f, --follow[={name|descriptor}]
                           ファイルが大きくなるたびに追加されたデータを出力
                           -f, --follow および --follow=descriptor は同じ
  -F                       --follow=name --retry と同じ
  -n, --lines=N            最後の 10 行ではなく N 行を出力
      --max-unchanged-stats=N
                           --follow=name とともに使い, 入力ファイルが削除
                           されていたり名前が変更されていないかどうかの確認を
                           N (標準 5) 回繰り返した後に大きさが変わっていない
                           ファイルを再度開く (これは rotate されたログ
                           ファイルなどに有効である)
      --pid=PID            with -f, terminate after process ID, PID dies
  -q, --quiet, --silent    never output headers giving file names
  -s, --sleep-interval=S   with -f, sleep for approximately S seconds
                           (default 1.0) between iterations.
  -v, --verbose            always output headers giving file names
      --help     この使い方を表示して終了
      --version  バージョン情報を表示して終了

If the first character of N (the number of bytes or lines) is a `+',
print beginning with the Nth item from the start of each file, otherwise,
print the last N items in the file.  N may have a multiplier suffix:
b 512, k 1024, m 1024*1024.

--follow (-f) を指定すると, tail は標準でファイル記述子を追尾します. つまり
tail されたファイルの名前が変更されても, tail はその終端を追いかけ続けます.  この標準の動作は, ファイル記述子ではなく, そのファイルの実態を追いかけたい場合
には好ましくありません (例えばログの rotate など). この場合は --follow=name を
を使ってください. これにより tail コマンドは, 何か他のプログラムによって
ファイルが削除されたり再作成されたかどうかを調べて定期的にファイルを開き直す
ことで, その名前のファイルを追いかけるようになります.

Windows

カテゴリー:

Linuxをいまから学ぶコツ教えます - @IT自分戦略研究所

シェルについて
シェルの考え方、シェルの機能(コマンド補完、ショートカット、環境変数など)
コマンドの構造
コマンド名、オプション、引数の組み合わせ
絶対パス、相対パスの概念
コマンド実行の方法
環境変数PATHからの実行、相対パス実行、絶対パス実行
コマンドの組み合わせ
リダイレクト、パイプなど
viエディタの操作
viの特徴、基本コマンド

カテゴリー:

1. /etc/pam.d/suファイルを開き、6行目の先頭のコメントを外す。
auth            required        pam_wheel.so use_uid
2. スーパーユーザになることを許可したいユーザをwheelグループに追加する。
vigr /etc/group
※viではなくvigrを使うと、ファイルのロックが行われる。
wheel:x:10:root,dai
ユーザ名をカンマで区切って追加する。

参考: FedoraCore4ビギナーズバイブル p.165

カテゴリー:

カテゴリー:

カテゴリー:

sshのrootログインを禁止する

ssh の root ログインを禁止する

1. /etc/ssh/sshd_config を修正
PermitRootLogin no に変更

2. sshd を再起動

カテゴリー:

1. ssh-keygen コマンドで鍵ペアを作成する

$ ssh-keygen -t rsa
秘密鍵の保存先を聞いてくるので、デフォルトのままEnter。 パスフレーズを2回入力。 すると、以下の鍵ペアのファイルが ~/.ssh/ に作成される。

id_rsa
id_rsa.pub

2. SSHサーバに公開鍵を登録する

ユーザのホームディレクトリに1.で作成した公開鍵を転送する。(FTPで転送してもよい。)
$ scp ~/.ssh/id_rsa.pub user@host
サーバ側で、catコマンドとリダイレクションを使って転送した公開鍵を登録する。(登録するファイルは ~/.ssh/authorized_keys)
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
「~/.ssh」ディレクトリと「~/.ssh/authorized_keys」はオーナーだけに読み書き可能なようにパーミッションを設定する。
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys

* クライアント側のユーザのホームディレクトリのパーミッションにも注意する。所有者以外の書込み権を設定してあるとだめ。
たとえば、/home/hogeのパーミッションが777の場合、公開鍵認証でsshログインしようとすると、
Permission denied (publickey,gssapi-with-mic).
というエラーになる。この場合、サーバ側のログ(/var/log/secure)では
Authentication refused: bad ownership or modes for directory /home/hoge
となっていて、/hoem/hogeのパーミッションに問題があるということ。
所有者以外の書込み権を設定してあるとだめ。700、711、755にすればOK。

3. 公開鍵認証方式でログインする

$ ssh -l user host

パスフレーズを聞いてくるので、ssh-keygenコマンドで指定したパスフレーズを入力する。
接続先サーバのパスワードではないことに注意

4. クライアント側の設定

id_rsa ファイルをクライアント側にコピーする。
例:
ユーザのホームディレクトリ\.ssh

* 秘密鍵のパーミッションに注意。秘密鍵のパーミッションがopenすぎるとだめ。 以下はmacosxでのエラーの例。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for '/Users/xxx/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/xxx/.ssh/id_rsa
Permission denied (publickey,gssapi-with-mic).

id_rsaを600にすればOK。

cwRsyncで公開鍵認証を使用する場合は、環境変数HOMEの下の「.ssh」(known_hostsファイルが作成されるディレクトリ)に秘密鍵ファイル(id_rsa)を置く。
例:
HOME=/home/pistolfly
でcygwinがD:\cygwinの場合、
D:\cygwin\home\.ssh
に秘密鍵ファイルを置く。

(rsyncの-eまたは--rshオプションのsshコマンドで-iオプションで秘密鍵のパスを指定してもよい。)

rsyncしてパスフレーズの入力を促されたところ
C:\sfprojects\reserve>symfony sync production
>> exec      rsync --progress --dry-run -azC...s.net:/usr/local/share/reserve/
Enter passphrase for key '/cygdrive/c/Documents and Settings/pistolfly/.ssh/id_r
sa':

TeraTermでは、ログイン時に「RSA/DSA鍵を使う」を選択して、秘密鍵に上記ディレクトリの秘密鍵ファイルを指定して、秘密鍵のパスフレーズを入力する。

5. パスワード認証を許可しないようする

/etc/ssh/sshd_config を編集

PasswordAuthentication yes

PasswordAuthentication no
にする。

rootのログインも禁止しておく。

PermitRootLogin no

root権限でsshd を再起動する。

$ /etc/init.d/sshd restart

参考:

FedoraCore5ビギナーズバイブル11-2-2

最終回 セキュアなSSHサーバーを構築する:ITpro

リモート接続に SSH を使う

@IT:鍵交換方式のsshでアクセスするには

カテゴリー:

CPU情報
$ cat /proc/cpuinfo

メモリ情報
$ cat /proc/meminfo
$ free

ディスク情報
$ fdisk -l

カテゴリー:

http://www.express.nec.co.jp/linux/distributions/knowledge/system/crond.html

http://cyberam.dip.jp/linux_foundation/taskschedule/cron_main.html

SHELL 使用するシェルの設定
PATH パスの定義
MAILTO 指定されたユーザ宛にcronの実行結果をメール送信する(空白の場合(MAILTO="")はメール送信を行わない。 またMAILTO自体を記述しない場合は/etc/crontabの所有者にメール送信される。)また複数のユーザを指定したい 場合はユーザ名をカンマ(,)で区切る。
HOME コマンドを実行する際のホームディレクトリの設定

カテゴリー:

GNU Wget 1.10.2 (Red Hat modified), 非対話的ネットワーク転送ソフト
使い方: wget [オプション]... [URL]...

長いオプションで不可欠な引数は短いオプションでも不可欠です。

スタートアップ:
  -V,  --version           バージョン情報を表示して終了する
  -h,  --help              このヘルプを表示する
  -b,  --background        スタート後にバックグラウンドに移行する
  -e,  --execute=COMMAND   `.wgetrc'形式のコマンドを実行する

ログと入力ファイル:
  -o,  --output-file=FILE    ログを FILE に出力する
  -a,  --append-output=FILE  メッセージを FILE に追記する
  -d,  --debug               デバッグ情報を表示する
  -q,  --quiet               何も出力しない
  -v,  --verbose             冗長な出力をする (デフォルト)
  -nv, --no-verbose          冗長ではなくする
  -i,  --input-file=FILE     FILE の中に指定された URL をダウンロードする
  -F,  --force-html          入力ファイルを HTML として扱う
  -B,  --base=URL            相対 URL(-F -i 使用時) のベース URL を指定する

ダウンロード:
  -t,  --tries=NUMBER            リトライ回数の上限を指定 (0 は無制限).
       --retry-connrefused       接続を拒否されてもリトライする
  -O,  --output-document=FILE    FILE に文書を書きこむ
  -nc, --no-clobber              存在しているファイルをダウンロードで上書きしない
  -c,  --continue                部分的にダウンロードしたファイルの続きから始める
       --progress=TYPE           進行表示ゲージの種類を TYPE に指定する
  -N,  --timestamping            ローカルにあるファイルよりも新しいファイルだけ取得する
  -S,  --server-response         サーバの応答を表示する
       --spider                  何もダウンロードしない
  -T,  --timeout=SECONDS         全てのタイムアウトを SECONDS 秒に設定する
       --dns-timeout=SECS        DNS 問い合わせのタイムアウトを SECS 秒に設定する
       --connect-timeout=SECS    接続タイムアウトを SECS 秒に設定する
       --read-timeout=SECS       読み込みタイムアウトを SECS 秒に設定する
  -w,  --wait=SECONDS            ダウンロード毎に SECONDS 秒待つ
       --waitretry=SECONDS       リトライ毎に 1~SECONDS 秒待つ
       --random-wait             ダウンロード毎に 0~2*WAIT 秒待つ
  -Y,  --proxy                   プロクシを使う
       --no-proxy                プロクシを使わない
  -Q,  --quota=NUMBER            ダウンロードするバイト数の上限を指定する
       --bind-address=ADDRESS    ローカルアドレスとして ADDRESS (ホスト名か IP) を使う
       --limit-rate=RATE         ダウンロード速度を RATE に制限する
       --no-dns-cache            DNS の問い合わせ結果をキャッシュしない
       --restrict-file-names=OS  OS が許しているファイル名に制限する
  -4,  --inet4-only              IPv4 だけを使う
  -6,  --inet6-only              IPv6 だけを使う
       --prefer-family=FAMILY    指定したファミリ(IPv6, IPv4, none)で最初に接続する
       --user=USER               ftp, http のユーザ名を指定する
       --password=PASS           ftp, http のパスワードを指定する

ディレクトリ:
  -nd, --no-directories           ディレクトリを作らない
  -x,  --force-directories        ディレクトリを強制的に作る
  -nH, --no-host-directories      ホスト名のディレクトリを作らない
       --protocol-directories     プロトコル名のディレクトリを作る
  -P,  --directory-prefix=PREFIX  ファイルを PREFIX/ 以下に保存する
       --cut-dirs=NUMBER          リモートディレクトリ名の NUMBER 階層分を無視する

HTTP オプション:
       --http-user=USER        http ユーザ名として USER を使う
       --http-password=PASS    http パスワードとして PASS を使う
       --no-cache              サーバがキャッシュしたデータを許可しない
  -E,  --html-extension        HTML 文書は `.html' 拡張子で保存する
       --ignore-length         `Content-Length' ヘッダを無視する
       --header=STRING         送信するヘッダに STRING を追加する
       --proxy-user=USER       プロクシユーザ名として USER を使う
       --proxy-password=PASS   プロクシパスワードとして PASS を使う
       --referer=URL           Referer を URL に設定する
       --save-headers          HTTP のヘッダをファイルに保存する
  -U,  --user-agent=AGENT      User-Agent として Wget/VERSION ではなく AGENT を使う
       --no-http-keep-alive    HTTP の keep-alive (持続的接続) 機能を使わない
       --no-cookies            クッキーを使わない
       --load-cookies FILE     load cookies from FILE before session.
       --save-cookies FILE     save cookies to FILE after session.
       --keep-session-cookies  セッションだけで用いるクッキーを保持する
       --post-data=STRING      POST メソッドを用いて STRING を送信する
       --post-file=FILE        POST メソッドを用いて FILE の中味を送信する

HTTPS (SSL/TLS) オプション:
       --secure-protocol=PR     セキュアプロトコルを選択する (auto, SSLv2, SSLv3, TLSv1)
       --no-check-certificate   サーバ証明書を検証しない
       --certificate=FILE       クライアント証明書として FILE を使う
       --certificate-type=TYPE  クライアント証明書の種類を TYPE (PEM, DER) に設定する
       --private-key=FILE       秘密鍵として FILE を使う
       --private-key-type=TYPE  秘密鍵の種類を TYPE (PEM, DER) に設定する
       --ca-certificate=FILE    CA 証明書として FILE を使う
       --ca-directory=DIR       CA のハッシュリストが保持されているディレクトリを指定する
       --random-file=FILE       SSL PRNG の初期化データに使うファイルを指定する
       --egd-file=FILE          EGD ソケットとして FILE を使う

FTP オプション:
       --ftp-user=USER         ftp ユーザとして USER を使う
       --ftp-password=PASS     ftp パスワードとして PASS を使う
       --no-remove-listing     `.listing' ファイルを削除しない
       --no-glob               FTP ファイル名のグロブを無効にする
       --no-passive-ftp        "passive" 転送モードを使わない
       --retr-symlinks         再帰取得中に、シンボリックリンクでリンクされた先のファイルを取得する
       --preserve-permissions  リモートファイルのパーミッションを保存する

再帰ダウンロード:
  -r,  --recursive          再帰ダウンロードを行う
  -l,  --level=NUMBER       再帰時の階層の最大の深さを NUMBER に設定する (0 で無制限)
       --delete-after       ダウンロード終了後、ダウンロードしたファイルを削除する
  -k,  --convert-links      HTML 中のリンクをローカルを指すように変更する
  -K,  --backup-converted   リンク変換前のファイルを .orig として保存する
  -m,  --mirror             -N -r -l 0 --no-remove-listing の省略形
  -p,  --page-requisites    HTML を表示するのに必要な全ての画像等も取得する
       --strict-comments    HTML 中のコメントの処理を厳密にする

再帰ダウンロード時のフィルタ:
  -A,  --accept=LIST               ダウンロードする拡張子をコンマ区切りで指定する
  -R,  --reject=LIST               ダウンロードしない拡張子をコンマ区切りで指定する
  -D,  --domains=LIST              ダウンロードするドメインをコンマ区切りで指定する
       --exclude-domains=LIST      ダウンロードしないドメインをコンマ区切りで指定する
       --follow-ftp                HTML 文書中の FTP リンクも取得対象にする
       --follow-tags=LIST          取得対象にするタグ名をコンマ区切りで指定する
       --ignore-tags=LIST          取得対象にしないタグ名をコンマ区切りで指定する
  -H,  --span-hosts                再帰中に別のホストもダウンロード対象にする
  -L,  --relative                  相対リンクだけ取得対象にする
  -I,  --include-directories=LIST  取得対象にするディレクトリを指定する
  -X,  --exclude-directories=LIST  取得対象にしないディレクトリを指定する
  -np, --no-parent                 親ディレクトリを取得対象にしない

カテゴリー: