マイナーな圧縮形式になるとコマンドを忘れがちなので、まとめのメモ。
まずは基本の gz 形式から。(さすがに忘れないけど)
圧縮 $ gzip filename 解凍 $ gunzip filename.gz
続いて、tar.gz (tgz) 形式。(これも忘れないなあ)
圧縮 $ tar cvfz dirname.tar.gz dirname 解凍 $ tar xvfz dirname.tar.gz
bzip2 (bz2) 形式。
圧縮 $ bzip2 filename 解凍 $ bzip2 -d filename.bz2
tar.bz2 形式。
圧縮 $ tar cvfj dirname.tar.bz2 dirname 解凍 $ tar xvfj dirname.tar.bz2
Windowsとのデータやり取りの基本、ZIP形式。
圧縮 $ zip filename.zip file1 file2 解凍 $ unzip filename.zip
これまたWindowsとデータ交換するとよく出てくるLZH形式。
圧縮 $ lha -a filename.lzh file1 file2 解凍 $ lha -e filename.lzh
こんなところでしょうか。個人的には、tar.bz2形式とLZH形式の解凍が、いつも一発でいきません。あうあう。どうもオプションが覚えられないんだよなあ。チートシート、チートシート、と。
Posted by dT by 18:44 | Comments (0) | TrackBacks (0)
年に1回くらい需要があることが分かったので、ここらへんでメモしてみる。
# useradd -s /sbin/nologin -M ftpuser # passwd ftpuser # mkdir -p /ftp/userdir # usermod -d /ftp/userdir ftpuser # chown ftpuser:ftpuser /ftp/userdir # chmod 705 /ftp/userdir
useradd で /sbin/nologin を指定することで、telnet などでログインできないユーザを作成できる。また、-M オプションを付けると、ホームディレクトリを作成せずにユーザを作成するので、不要なメールボックスが作成されないで済む。FTP先のディレクトリは、usermod で後から設定してあげればOK。
ざっくりこんな感じ。
ただ、qmail が動いていると、メールボックスは無いんだけれども、/etc/passwd にエントリされるだけで、有効なアカウントと判断してしまう。だもんで、例えば ftpuser 宛にメールをすると、ローカル配送してしまう。まあ、メールボックスが無くてエラーになるので、目的を達成してはいるんだけど、"no mailbox" なエラーじゃないので、いただけない。
ここらへん、厳密に対処するのであれば、qmail でメールアカウントだけを削除する方法のように、ごにょごにょしてやらないといけない。ちょっと大げさ。
色んなサービスが動いていると、細かいところで厄介になるなー。
Posted by dT by 23:52 | Comments (0) | TrackBacks (0)
SSLを設定してApacheを立ち上げようとすると、秘密鍵のパスフレーズを問合せてくる。
手動で運用している分には問題ないのだけれども、スクリプトで起動するような操作をする場合に面倒くさいことになる。そこで、パスフレーズの入力を回避してみる。
# openssl rsa -in server.key -out server.key.nopass
これで、元の秘密鍵からパスフレーズ抜きの鍵を生成して、これを SSLCertificateKeyFile に指定してあげれば、次回の起動からはパスフレーズの入力なしで、Apacheを起動できます。わーい、便利。
ただし当然ながら、これはセキュリティ上、好ましくないので、単純に「めんどくせえなあ」ということなら、やめておいた方が良いと思います。そういう意味では、裏技ですね。
ちなみに、
# apachectl startssl
として起動しようとしたら、怒られてしまった。
Apache2.2からは、startssl などと書かずに、普通に start や graceful でSSL起動ができるようになったとのこと。ほう、こりゃまた便利な世の中ですなあ。
ということで、
# apachectl start
のコマンド一発で、パスフレーズ入力もなく、SSLを意識せずにApacheの運用が出来るようになりました。お疲れさまでした。
Posted by dT by 23:19 | Comments (0) | TrackBacks (0)
PostgreSQLで、同一イベントに複数のトリガーがある場合に、どういう順番で実行されるのか気になったので調べてみた。
トリガ動作の概要 同一リレーション、同一イベントに対して1つ以上のトリガが定義された場合、トリガはその名前のアルファベット順に発生します。 BEFOREトリガの場合では、各トリガで返される、変更された可能性がある行が次のトリガの入力となります。もし、あるBEFOREトリガがNULLを返したら、操作はその行で中断し、残りのトリガは発生しません。
アルファベット順、これは予想外だった。以前は順番を保証することさえなかったみたいだから、それに比べたら方法があるだけマシなのかもしれないけど、トリガ名を考えないといけないということか。なんか明示的な制御の方法はないのかな。
Posted by dT by 12:30 | Comments (0) | TrackBacks (0)
新規にドメインを取得し、自分でネームサーバを立てて運用をしようとするも、うまくいかずに数日ほどハマる。
ゾーンファイルを書き換えたりすることは日常的に行っており、DNSの仕組みも把握していたので、ゼロから構築するのもイージーだろうと思っていたら、まあ、色んなミスを重ねてハマりまくった。反省の意味も込めて、メモ書き。
Posted by dT by 13:09 | Comments (0) | TrackBacks (0)
1台のサーバで複数ドメインの SSL 対応をやることになって、サーバ(というかNIC)に複数のIPアドレスを割り当てることになった。名前ベースの VirtualHost だと SSL 対応できないからね。VirtualHost で複数 SSL 運用するのであれば、IPベースしかないわけです。
こういう場合は、IPエイリアスを使うのが定石。
# ifconfig eth1:0 xxx.xxx.xxx.11 netmask 255.255.255.240 # ifconfig eth1:1 xxx.xxx.xxx.12 netmask 255.255.255.240
こんな感じで、NIC(ここではeth1)に複数IPアドレスを割り当てていけば OK なんだけど、このままだと、再起動時に設定が無効になっちゃう。仕方なく network の起動スクリプトに、同じコマンドを記述して起動していたんだけど、Redhat なら静的ファイルで管理できるみたい。
# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=static BROADCAST=xxx.xxx.xxx.15 HWADDR=xx:xx:xx:xx:xx:xx IPADDR=xxx.xxx.xxx.10 NETMASK=255.255.255.240 NETWORK=xxx.xxx.xxx.1 ONBOOT=yes TYPE=Ethernet
という NIC に対して、次のようにエイリアスファイルを作っていけば OK みたい。
# vi /etc/sysconfig/network-scripts/ifcfg-eth1:0 DEVICE=eth1:0 BOOTPROTO=static BROADCAST=xxx.xxx.xxx.15 HWADDR=xx:xx:xx:xx:xx:xx IPADDR=xxx.xxx.xxx.11 NETMASK=255.255.255.240 NETWORK=xxx.xxx.xxx.1 ONBOOT=yes TYPE=Ethernet
# vi /etc/sysconfig/network-scripts/ifcfg-eth1:1 DEVICE=eth1:1 BOOTPROTO=static BROADCAST=xxx.xxx.xxx.15 HWADDR=xx:xx:xx:xx:xx:xx IPADDR=xxx.xxx.xxx.12 NETMASK=255.255.255.240 NETWORK=xxx.xxx.xxx.1 ONBOOT=yes TYPE=Ethernet
これまで1枚の NIC に対して 1つのファイルなんだと思っていたので、エイリアスの場合どうするのかなーなんて思っていたんですが、IPエイリアスごとにファイルを用意して管理できるんですねー。これは良いこと知りました。ありがとうございます。
Posted by dT by 10:42 | Comments (0) | TrackBacks (0)