便利な Linux デスクトップ (GNOME 編)

Ubuntu 使われている方はおなじみの GNOME 統合デスクトップ環境。 なかなかにくいやつで、標準でもいろいろなことができるようになっています。 これのおかげでぼくの場合は他のOSより快適に PC の操作ができていたりするのですが、そんな中いくつか技があるので紹介してみたいと思います。

GNOME にはパネルという Windows でいうタスクバーがありますが、こいつにはいろいろなアプリを追加することができます。(パネルのなにもないところをクリックして「パネルへ追加」です)

まずはおなじみ仮想デスクトップ。 ワークスペース切り替え器というらしい。

gdesktop27

こいつですね。 右に配置されている4つです。 🙂

gdesktop26

ぼくは、GUI の操作で一番煩雑なのはウインドウ操作だと思っているのです。 重なっているのを探し当てたり、はたまたタスクバーで目的のウインドウをさがしたり、CTRL + TAB でいきすぎちゃって、キーーーとか。 お仕事中、10個くらいエクセル立ち上げて発狂しかけた方も多いのではないかと思います(笑)

今日のタブ全盛もそんなアンチテーゼなんじゃないかとおもいますが、仮想デスクトップはウインドウをグループしてくれる機能です。 つまりタスクバーや、CTRL + TAB をしたときに、他のデスクトップのウインドウは現れず、そのデスクトップに絞られるので非常に使いやすくなります。

マウスでぽちっとおすとそのデスクトップに切り替わりますが、ショートカットキーを使うとさらに便利です。 標準で CTRL + ALT + 矢印左右にあたっていると思うので、押してみましょう。 🙂 Compiz のビューポートスイッチャー入れている場合は、デスクトップの何もないところでホイール回すと切り替わります。

次。 Linux を使っていて Windows のソフトが恋しくなった場合の話・・・。 ぼくは Windows Live Writer を使う場合、あと月末に仕事でエクセルを使わねばならない場面があるので、Ubuntu 上に Windows を入れています。

VMWare とか VirtualBox とか、いわゆる仮想マシンというソフトウェアに、余っている Windows を入れてしまえば良いです。 老舗仮想マシン、VMWare Player が最近バージョンがあがって、インストーラが付き Ubuntu にも入れやすくなりました。

Download VMware Player, Free VMware – VMware

無料の VMWare Player は、基本的には VM の新規作成ができないので、Windows をいれるにはちょっとトリッキーな方法を使わなければなりませんが(製品版の VMWare がいる)、いくつかあたれば新規作成も可能になるので試してみるといいかもしれません。 VirtualBox のほうは完全フリーで、なかなかとのことなので、トリッキーを嫌う場合はこちらも良いと思います。

Linux 窓で動くウインドウズとはこれいかに。

gdesktop23

で、です。 仮想マシンで Windows を立ち上げて、フル画面起動。 まるで Windows になるのですが、これに仮想デスクトップを組み合わせると・・・。

gdesktop20

左から2番目が Windows の画面です。 CTRL + ALT + 左右で自由に Linux と Windows をいききできる環境ができます。  こりゃ英和。 じゃないええわ。

ぼくのように使うアプリが圧倒的に Windows のほうが少ない場合は非常に便利だと思います。 Athlon64 2000 とかずいぶん前の CPU つかっていますが、ちょっと遅いかなくらいで勤務表とかかくくらいなら、まったく問題にならない性能が出ます。 4コア CPU とかつかったら、そこらの PC より速いかもですね(笑)

・・・仮想マシン & デスクトップに続きまして、次は Windows でいうところの Explorer 相当、Nautilus さん。 のーちらす。(←2回言った。。 グラタンではないので要注意。(ネタが古い・・・

gdesktop21

ここを読んでいる方は WordPress ユーザの方が多いと思いますが、そんな人がよくやるのは FTP。 つーことで、サーバへのファイル転送。

FTP で 100、200個のファイルを転送したときにエラーになった経験がある方も多いと思いますが、FTP というのは結構、クライアント/サーバに厳しいプロトコル。 ファイル転送ごとにデータコネクションをばんばんたてるので、きっとリソース不足でエラーになるのだと思います。

てなわけで、

ぼの「YOU、SFTP つかっちゃいなよ!」

Masayan 「・・・」

うそです。。 言ってません、すいません。。

SFTP – Wikipedia

SFTP(Secure File Transfer Protocol)とは、SSHの仕組みを使用しコンピューター間でファイルを安全に転送するプロトコル。または、それを利用するコマンド。

おなじみ、SSH がつながるサーバであれば、SFTP が使えますのでこっちをつかうといいと思います。 経験的に転送トラブルが少なく、また暗号化されているので安全でしょう。

Windows だと WinSCP が有名で、Filezilla もたしかつながったと思います。 そして、われらが GNOME は Nautilus さんが標準サポートしてくれまする。

ファイル -> サーバへの接続。

gdesktop22

サービス種類を SSH 、ポート 22 番。 XREA/CORESERVER だったらパスを /virtual/[ユーザ名]、とかにして接続すればつながります。 パスワードは GNOME のキーマネージャが管理してくれます。 ブックマークしておくと、左サイドペインにでてくるので次回便利でしょう。

gdesktop28

こんな感じですね。 Nautilus からつないだ場合、ファイルをテキストエディタで開いて保存すると勝手に転送まで良きに計らってくれます。 🙂

次の Ubuntu 8.10 では Nautilus がタブサポートしてくれるので SFTP するときも便利になるかと思います。 Windows 7 もたしか、エクスプローラでタブサポートだった気が。

実はファイルマネージャのタブサポートは、もう一つのデスクトップ環境の雄、KDE さん(Kubuntu のほう) の Konqueror は昔っからしていたのでした。 GNOME もようやくという感じですね。  ちなみに、現在 KDE は Konqueror をブラウザとして切り離し、ファイルマネージャは dolphin に移行しているようです。

gdesktop24

こーんな感じらしいです。 多機能で面白そうですね。

実はぼくは、昔 KDE 一派だったのでよく分かるのですが、KDE は全体的に GNOME より多機能です。 いつから GNOME にきたのかは不明。。 たぶん、KDE のコンパイルで挫折したあたりからです(笑)

GNOME さんもリーナスに悪口言われたりで、負けてられないってわけで、最後にちょっと面白いパネルを紹介。 デスクバー。

gdesktop25

サイドバーにくっつけたりもできますが、GNOME Do に近い動きをするソフトです。 ショートカットで ALT + F3 とかに割り当てて、テキストエリアに pid.. くらいまでうつと Pidgin の起動などが選べるようになります。

また拡張も多く用意されていて、辞書検索とか Yahoo 検索とかこの窓から文字を打つだけで一気にできるようになったり便利です。 Ubuntu 8.10 にのる GNOME 2.24 のデスクバーは、twitter とかにも対応するとか。

てなわけで、ユーザインターフェースに関して商用OSは、ユーザが多いので顔色伺いながらちょっとづつ変えざるを得なく中途半端感がぬぐえませんが、オープンソースは必殺「しらね~よ」が使えるので、既存ユーザなんのその、がんがん進化していけるのが面白いところです。

昔はつめが甘い部分も見受けられましたが、最近は安定感もついてきて快適に使うことができるでしょう。 ためして。 がってん、がってん。(←同じオチ

Ubuntu 8.04 でプリンタの設定をする。

普段、ぼくが Linux 上でやるようなことでは、プリンタってあんまり登場してこないのですが、yutaka さんが玄箱でいろいろやられているのを拝見していて、ふと、そーいえば Linux のプリンタサーバ(CUPS)に繋がっているプリンタに、Linux から印刷するにはどーすればいいのだろうか。 そんな疑問がふつふつとわいてきたので試しにつないでみました。 🙂

たとえば玄箱に USB 接続されたプリンタに対して、Ubuntu からネットワーク越しに印刷する場合とかです。

うちは、CentOS の USB に EPSON の PM-A890 というプリンタがつながっていて、CentOS の CUPS で RAW Printer として認識させ、これを現在のところ Windows からネットワークプリンタとしてマウントして印刷を行っています。

これと同じことをクライアントで使っている Ubuntu で設定してあげれば、印刷ができるはず、てなわけでまずは Ubuntu 用の EPSON のプリンタドライバのインストールから・・・。 RAW Printer というのは、できあがった印刷データをパスするだけなので、クライアント側にドライバが必要です。

以下は、既存のネットワークプリンタ(ここでは CentOS につながった EPSON プリンタ) を Linux (Ubuntu) から印刷する設定方法。 サーバ側は設定済みとして、CUPS->CUPS ですね。

Linuxドライバ  [AVASYS CORPORATION]

Linux向けEPSON製インクジェットプリンタ、レーザープリンタ、スキャナのドライバをダウンロードすることができます。
製品のダウンロードは、左のメニューの「ダウンロード」の各カテゴリより、お入りください。

こちらから機種にあったドライバがダウンロードできます。 最近は Debian 系用に .deb (pipslite_1.2.0-1_i386.deb) も用意されているようなのでこれをダウンロードしてパッケージマネージャからインストール。

ちなみに CANON さんはこっちかな?

キヤノン:サポート|ソフトウエアダウンロード

その他OS

っていうか、MS-DOS のドライバがあるのに驚きました。 MS-DOS のプリンタドライバって何に使うんでしたっけ? > prn ? あれ?(笑)

というのはおいておいて、Ubuntu の GNOMEメニュ -> システム -> システム管理 -> 印刷から「新規プリンタ」。 もし新規プリンタとかが押せない状態であれば、Ubuntu 側の CUPS サービスがあがっていないので、サービス管理から起動してください。

printer10

ネットワーク上の CUPSプリンタ(CentOS)は、Internet Printing Protocol (ipp) でみつけられます。 ホストにサーバの IP アドレスをいれて Find Queue するとプリンタが見ることができます。 このとき、ホスト名が IP アドレスからホスト名に置換されるようなので、名前解決ができなければ記述を IPアドレスに戻します。 でもって一応、「確認」でOKがでることを確認。

printer11

ほいでもって、ここでいよいよさきどほインストールした Linux 用のプリンタドライバを指定するわけですが、EPSON さんのドライバは、とりあえず最初はプリンタがその機械の USB につながっていないと、ドライバ指定に必要な "PPD 設定ファイル"の作成ができません。。 プリンタあっちにあるのにつなぐのたいへんだちゅーの。(笑)

というわけで、EPSON さんも便宜を払ってくれていて、一般的な設定がされた PPD ファイルがいっしょにインストールされるようなのでこちらを指定。 どうせたいした細かい設定した印刷しないのでこれでOK。

PPD ファイルを指定するにして

/usr/share/cups/model/eklite.ppd

ファイルを選択します。

printer12

これで最初の画面にプリンタが追加されれば完了です。 各アプリケーションの印刷メニューにこのプリンタが現れてくることでしょう。 実は Linux のクライアントから印刷するのって生まれて初めてかも。。(笑)

[tegaki]てい![/tegaki]

DVC00046

おーでたでた。 ちょっと大きめの、OOo のプレゼンテーションとかも印刷できたので問題ないでしょう。 🙂

むかしの Linux とか印刷するとかいったら一大事ぽかったので、いままで避けてきていましたがずいぶんと簡単になったものです。 がってんがってん。

WordPress の MySQL バックアップ

Masayan さんのところのデータベースがとんだのを期に高まる、MySQL バックアップ機運 🙂 ということで、シェル/cron をつかった MySQL バックアップ方法とか書いてみます。

phpMyAdmin とかその他プラグイン系でもバックアップはとれますが、データベースサイズが大きくなってくると http タイムアウトとの戦いになってきます。 また、バックアップ戻しも http アップロードから SQL 発行となりますので、ファイルのアップロード容量制限なども加わり難しい問題に直面しそうな雰囲気があります。

てなわけで、大抵のサーバは ssh の接続がサポートされていますので MySQL のバックアップ関連はこちらで操作するといいかもしれません。 まずは手動のシェル起動によるバックアップ、これがうまくいったら cron にこのシェルを登録してみます。

ここでは、XREA/CORESERVER でのやりかたです。 他のサーバでも大してかわらないでしょう。

まずシェルを配置するディレクトリをサーバ上につくります。 XREA/CORESERVER では Apache のドキュメントルートより上がつかえますのでここに FTP などでディレクトリを作成します。 public_html (ドキュメントルート)と同列にbackup-mysql としました。

 backup11

で、そのディレクトリの中に以下のシェルを backup.sh として格納します。 このシェルは kohaku さんが使われているものを、設定しやすいように修正したものです。

#!/bin/sh
 
# 設定(ここを自分に合わせる)
DATABASE=another
DBUSERNAME=another
PASSWORD=********
XREAUSERNAME=another
BACKUPDIR=backup-mysql
KEEPDAY=14
 
# 初期化(XREA/CORESERVER用)
PREFIX=mysql
SERVER=localhost
NOWDATE=`date +%Y%m%d`
DESTDIR=/virtual/$XREAUSERNAME/$BACKUPDIR
DUMPFILE=$PREFIX.$NOWDATE.dump
TARFILE=$PREFIX.$NOWDATE.tar.gz
OLDDATE=`date "-d$KEEPDAY days ago" +%Y%m%d`
 
# MySQLダンプ/圧縮
cd $DESTDIR
/usr/local/mysql/bin/mysqldump $DATABASE --host=$SERVER -u $DBUSERNAME --password=$PASSWORD > $DUMPFILE
tar zcvf $TARFILE $DUMPFILE
 
# 処理判定
if [ $? != 0 -o ! -e $TARFILE ]; then
    echo "backup faild -- ($DUMPFILE)"
    exit 1
fi
 
# 圧縮前ファイル削除
rm -f $DUMPFILE
 
# n日ローテートを削除
rmfile=$DESTDIR/$PREFIX.$OLDDATE.tar.gz
if [ -e $rmfile ]; then
    rm -f $rmfile
fi

(2008/10/18 追記)

上記の mysqldump オプションであると、1テーブルに大量にデータがある場合に、mysql クライアントによってはうまくインポートできない場合があるようです。 また、テキストエディタで開いたときも、よこに長い行ができて操作しづらいため 以下にする指定して横の maxsize を指定すると良いようです。 ただしインポート速度は犠牲になります。

/usr/local/mysql/bin/mysqldump $DATABASE --host=$SERVER -u $USERNAME --password=$PASSWORD -e -O net_buffer_length=500 > $DUMPFILE

(2008/10/18 追記終わり)

DATABASE、USERNAME、PASSWORD を自分の MySQL アカウント・バックアップしたいデータベースに変更します。 バックアップファイル格納ディレクトリを backup-mysql 以外にしたときは BACKUPDIR も変更してください。

ファイルの改行コードは UNIX にしてください。 Linux をお使いの方はなにも考えないで FTP アップロードで OK です。

で、できたらこの backup.sh に FTP クライアントなどで実行権限をつけます。 700 にしましょう。

準備ができたら、サーバに ssh 接続しこのシェルを起動して実行確認します。 ssh 接続は Windows の方は以下を参考に・・・。

hiromasa.another :o) » Blog Archive » CORESERVER & XREA での SSH 接続

最近はレンタルサーバで SSH の接続を許可しているところも多くなりました。 SSH 経由で UNIX に接続できると、たとえば FTP では結構面倒な一括ファイル操作や、前のエントリで書いたような svn、また cron の設定とか、gcc を使った C ベースの CGI のコンパイルとかいろいろできるようになります。

Linux の方は、ホスト名登録後、端末から以下のコマンドをうつだけでつながります。

ssh -l [ユーザ名] [サーバ名]
 
ex. ssh -l another s8.coreserver.jp

という感じです。

backup10

で、つながったらカレントディレクトリを先ほどのシェル格納ディレクトリに移します。 コマンドは cd ですね。 🙂

cd backup-mysql

そこのコマンド全部入力しようとしたあなた! TAB キーをつかいましょう。  "cd ba" くらいまでコマンド入れて TAB おすとコマンド補完してくれます。 ファイル名などの入力ではこれをつかうと間違わずに済みます。 ご活用を。 🙂

カレントディレクトリがうつったら、一応 ls で backup.sh があることを確認です。

another@s8:~> cd backup-mysql/
another@s8:~/backup-mysql> ls -laF
total 5
drwxr-xr-x  2 another hpusers  80 2008-10-11 16:03 ./
drwx---r-x  9 another hpusers 608 2008-10-11 15:30 ../
-rwx------  1 another hpusers 801 2008-10-11 15:16 backup.sh*
another@s8:~/backup-mysql> 

こんな感じなら OK です。 ではシェルを実行。 ./backup.sh と入力します。 ドットスラッシュってうって TAB おせば補完してくれるでしょう。 なにか動いたようであれば ls でファイル確認です。

another@s8:~/backup-mysql> ls -laF
total 1986
drwxr-xr-x  2 another hpusers     120 2008-10-11 16:04 ./
drwx---r-x  9 another hpusers     608 2008-10-11 15:30 ../
-rwx------  1 another hpusers     801 2008-10-11 15:16 backup.sh*
-rw-r--r--  1 another hpusers 2023812 2008-10-11 16:04 mysql.20081011.tar.gz
another@s8:~/backup-mysql> 

こんなふうに .tar.gz で圧縮されたファイルができていればまずは成功。 圧縮ファイルを FTP でダウンロードして中身に .dump ファイルがありますので、テキストエディタでひらいて SQL の内容を確認してください。

うまくいったらこのシェルを cron 登録します。 cron は 3分の実行時間制限があるようなので、もし上の手動起動で 3 分をこえるようであれば残念ながら自動実行はできません。 まー、いくらなんでも 3分ってことはないとおもうので、ほとんどの場合大丈夫でしょう。 シェルの方は 14 日前の古い .tar.gz を削除するようになっています。

さてバックアップをとったら、バックアップ戻しを知っておく必要があります。

MySQL の場合はエクスポートがただの SQL なので、ここでとった .dump ファイルを phpMyAdmin にたべさせても復元できますが、前述のとおりアップロード時間などの制限がありますので、こちらもシェルでやったほうがいいでしょう。

ここから先は、戻しのときだけ。 以下のコマンドでいけるハズです。

インポートデータベース先とか間違うと大変なことになりますので、細心の注意で緊急事態までやらぬよう・・・。 戻し先のデータベースは事前に空で作成しておきます。ローカルで MySQL 動かしている方は、サーバから取得した .dump で実験するといいと思います。

引数には .tar.gz の圧縮ファイルではなく中身にはいっている .dump をわたします。

mysql -u [ユーザ名] -p --default-character-set=utf8 [データベース名] < [バックアップ.dumpファイル]
 
ex. mysql -u another -p --default-character-set=utf8 another < mysql.20081011.dump

パスワードきーてくるので、MySQL のパスワードいれればOKです。

XREA/CORESERVER の場合は、Web サーバと MySQL が同一(localhost) なので、サーバのハードディスク自体がクラッシュするとこのバックアップもろとも飛んでしまうという弱点があります。 まぁこっそり RAID くらいしている気もするのでそうそうないと思いますが、ファイル化されても安心せずに定期的に FTP 取得してください。

本来なら GMail なんかに送信できるといいのですが、添付ファイルつきのメール送信でうまい方法を思いつかなかったので今回はとりあえず・・・。 PHP キックすればいいかな、、とか。

AutoMySQLBackup など高機能なシェルもありますので、こちらを使うのもよいかもしれません。 ただ mail コマンドをつかっているようで、GMail にはうまくとばすことができませんでした。

てなわけで、転ばぬ先のバックアップの巻でありました。