2009年2月24日火曜日

CD-RW に ISO イメージを焼く (CD-R も)

Linux で CD-RW (CD-R) に ISO イメージを焼きたいときがあります。
インストールディスクの作成とかで。
GUI でも作成できるのでしょうが (そのやり方を知りませんが(笑))、コマンドでやる方法があります。

Fedora 5 の頃は cdrecord コマンドを使用していましたが、
Fedora 7、Ubuntu 7.04 以降は、ライセンスの関係で wodim になったそうです。
試しに cdrecord コマンドを実行してみると。wodim にシンボリックリンクが張られています。

# cdrecord
wodim: No tracks specified. Need at least one.
Usage: wodim [options] track1...trackn

Use wodim -help
to get a list of valid options.

Use wodim blank=help
to get a list of valid blanking options.

Use wodim dev=b,t,l driveropts=help -checkdrive
to get a list of drive specific options.

Use wodim dev=help
to get a list of possible SCSI transport specifiers.

# which cdrecord
/usr/bin/cdrecord

# ls -l /usr/bin/cdrecord 
lrwxrwxrwx 1 root root 5 2008-06-08 01:47 /usr/bin/cdrecord -> wodim

さて、焼き方ですが。

1. まず、ドライブにメディアを挿入し、デバイス名を取得します。
 一般的には /dev/scd0 とかになると思います。

# dmesg
  または
# lv /var/log/messages

# wodim --devices
  でもいけるみたいですが、うちの環境ではダメでした。

2. 次に、CD-RW のディスクを初期化します (blank=all を指定した場合は遅いです)。

# wodim dev=/dev/scd0 blank=fast

3. CD-RW に ISO イメージを書き込みます (speed の値はドライブに応じて調整してください)
 書き込みが完了したら eject します。

# wodim speed=16 -eject boot.iso

CD-R の場合は 2. の初期化部分をとばせば OK。

2009年2月21日土曜日

ファイルの文字コードを一括変換 (find, nkf, xargs)

あるディレクトリ以下の全ファイルの文字コードを一括変換したいことがあります。
そんなときは以下のコマンドで処理します。
(カレントディレクトリ以下の全ファイルを UTF-8 に変換する場合)

$ find . -type f | xargs -n 10 nkf -w --overwrite

まず、find で ファイルを抽出 (-type f)、
抽出した結果を xargs に引数として渡し、nkf で処理します。

xargs のオプション "-n 10" は、引数を 10 個ずつ渡すの意。
ファイル数が多い場合は、引数を渡しきれないので、追加します (ファイル数が少ない場合は不要)。

以下でも同じ結果が得られますが、xargs を使った方が処理は速いです。

$ find . -type f -exec nkf -w --overwrite {} \;

nkf のオプション

オプション意味
-eEUC に変換
-sSJIS に変換
-wUTF-8 に変換
-jJIS に変換
-LuUNIX 改行コード (LF) へ変換
-LwWindows 改行コード (CR+LF) へ変換
-Lm(Macintosh 改行コード (CR) へ変換)
--overwriteファイルを上書き

● find, xargs, 個ずつ, nkf, 大量

2009年2月16日月曜日

bash のプロンプト設定

bash のプロンプト設定は、結構重要です。
これは覚えるものでもないので、ここにメモしておきます。

$ vi ~/.bashrc
PS1='\e[04m\u@\h\e[00m[\w]: '
を追加

軽く意味を説明します。
(あれ? バックスラッシュとエンマークの表示が変わってる…。エンマークはバックスラッシュに読み替えてください)

文字列意味
PS1プロンプトのシェル変数
\e[04mアンダーライン (開始)
\uユーザ名を表示
@@
\hホスト名を表示
\e[00m初期状態へ (アンダーライン終了)
[[
\w現在のディレクトリ (ホームディレクトリは "~" を表示)
]: ]:

こんな感じになります。

ohmoto@ubuntu-vbox[~]: cd /usr/src/
ohmoto@ubuntu-vbox[/usr/src]:

参考: BashとBashのプロンプト

2009年2月9日月曜日

rsync でバックアップを取る

ディレクトリのバックアップを取る場合、ベーシックな手段として rsync を使います。
(RAID とかでもいいですが、やっぱりこれが安心です)
差分しか転送しないので、コピーするより断然早いです。
cron と組み合わせて自動バックアップすることも良くやります。

# rsync -aAX --delete /home/ /Backup/home/

コマンドが間違っていないか、事前に -v, --dry-run オプションで確認しておくことが重要。

# rsync -aAXv --delete --dry-run /home/ /Backup/home/

■ 2016/05/06 追記
ssh 経由でリモート PC にバックアップを取る場合の例。

# rsync -aAX --delete -e ssh hogehoge/ USER@192.168.0.10:~/hogehoge/

■ 2021/02/16 追記
システム全体をフルバックアップする場合の例。

# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /mnt/root2

● rsync, ssh, バックアップ, backup, exclude, ルート

2009年2月6日金曜日

Word, Excel で「読み取り専用を推奨」 設定にする

ファイルサーバ上で、自分が書いた Word や Excel の仕様書を期間をおいてから参照するときに、
「ただ参照したいだけなのに」
「間違って編集したら怖いなぁ」
と思うことが多々ありましたが、それを解決する良い設定がありました。
ファイル毎に設定することが可能です。

■ 「読み取り専用を推奨」を設定する方法

Word, Excel で、
  [ツール] → [オプション] → [セキュリティ]
  読み取り専用を推奨にチェックを入れる

この設定をしておくと、
ファイルを開く時に、「読み取り専用」にするか、「編集可能」にするか、選択できるようになります。

2009年2月5日木曜日

日本語ファイル名の文字コードを変換

Windows で作ったファイル名が日本語のファイルを Linux で扱う場合、文字化けすることがあります。
変換方法を以下にまとめます。

■ 日本語ファイル名の文字コードを確認する方法

まず、ファイル名の文字コードを調べます。

$ kcc -c filename

■ 日本語ファイル名の文字コードを変換する

以下のコマンドで変換します (ShiftJIS のファイルを UTF-8 に変換したい場合)。

$ convmv -r -f sjis -t utf8 * --notest

変換はせず、どうなるかを確認したい場合は、"--notest" オプションを外します。

$ convmv -r -f sjis -t utf8 *

● 日本語, ファイル名, File Name, 文字, コード

2009年2月2日月曜日

halt ユーザの作成方法 (Fedora)

Ubuntu の場合はこちら

■ halt ユーザについて

サーバの init レベルを 3 にしている場合、halt ユーザを作っておくと、
その端末にログインしなくてもシャットダウンができるようになるので便利です。
(例えば、会社の PC でシャットダウンし忘れて帰宅してしまった場合とか)
最初から GUI ログインにしておけば、こんな設定は不要だったりしまが…。
ただ、その場合はマウス操作が必要になるので、私はこっちが好きです。

参考: init レベル変更方法 (Fedora)

■ halt ユーザエントリを編集

# vipw
halt:x:7:0:halt:/sbin:sudo /sbin/shutdown -h now

■ halt ユーザの shadow パスワードの設定を削除

# vipw -s
(halt ユーザのパスワード部分を削除)

■ sudo 設定ファイルを編集

# visudo
(下記設定を追加)
halt  ALL=/sbin/shutdown -h now

この設定により、ログイン画面で halt と入力するだけで、シャットダウンできるようになります。

2009年2月1日日曜日

init レベル変更方法 (Fedora)

■ init レベル変更方法

サーバ用途の PC では X Window System は、あまり必要ありません。
その場合、Run Level を 3 (フルマルチユーザー テキストモード) で起動します。
設定方法は以下のとおり。

# vi /etc/inittab
(id:5:initdefault: の行の 5 を 3 に変更)
id:3:initdefault: