More from: linux

サーバ間のメール転送が上手くいかない・・・

メールサーバの移行に伴い、新旧サーバ間でのメールの転送が必要になった。
具体的には新サーバの特定ユーザー宛のメールを旧サーバに転送することになる。
そこで該当ユーザーの”.forward”ファイルに転送先の旧サーバのアドレスを書いたのだけど、
「sendmail deferred connection refused by XXX」(XXXは送信先、要は旧サーバ名)
のエラーとなり送信出来ない。
それもその筈、旧サーバは当初外部からのsmtp接続を受け付ける必要が無かったので、”sendmail.cf”の
「O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA」
という項目がデフォルトのままだったために、外部からのsmtp接続を拒否していた。
ここにもう一行
「O DaemonPortOptions=Port=smtp,Addr=aaa.bbb.ccc.ddd, Name=MTA」(aaa.bbb.ccc.dddは自サーバの実際のIPアドレス)
という行を追加し、sendmailを再起動することで回避出来た。
ところがその後も新サーバ側からメールを送ると、
”553 5.3.5 system config error”
とか
”553 5.3.5 xxx.yyy.zzz. config error: mail loops back to me (MX problem?)”
というエラーが出てやはり送信出来ない(汗)。
これらのエラーは”/etc/mail/local-host-names”ファイルに関係する全てのサーバ名(ホスト名、ホスト名+ドメイン名)を追加で記述しsendmailを再起動することで解消出来た。
また
”Relaying denied”
も出ていたので、これは”/etc/mail/access”ファイルにリレーを受け付けるホスト(要は新サーバ)のIPアドレス+”RELAY”を記述し、makeし直すことで解決した。

上記の設定変更でようやく新サーバから旧サーバへのメールの転送が可能になったので、ようやく落ち着いたよ(汗)。

人気ブログランキングへ←クリックしてくれると嬉しいです。

telnetで接続できなくなった(汗)

職場のメール受信用サーバが最近調子が悪いので新たに構築したサーバに移行中。
ところが移行作業二日目の朝になるとPCからtelnetでサーバに接続しようとすると、
「getaddrinfo: localhost Name or service not known Connection closed by foreign host.」
というエラーメッセージが出て接続できなくなってしまった。
早速このエラーメッセージでググって見ると、どうも/etc/hostsファイルの記述(だけでは無いらしいが)に問題があるようだ。
そこを修正すればOKらしいんだけど、作業をするにはコンソールからログインしなければならない。
サーバを設置してある部屋に行って/etc/hostsファイルを見ると、/etc/sysconfig/networkファイルに書いてあるホスト名と異なっていた(汗)。
さっそく/etc/hostsファイル内のホスト名を書き直すとtelnetでの接続が復活した。
うーん、前日の作業で修正を間違っていたのかなぁ???

人気ブログランキングへ←クリックしてくれると嬉しいです。

ユーザーパスワードをシェルスクリプトで設定

サーバー上のユーザーアカウントを別サーバーに移行する必要が生じた。
サーバー自体をまるごとコピーすれば簡単なんだけど、OSのバージョンを新しくしたサーバーへの移行なのでそれが出来ない。
つまり新しいサーバー上でユーザーアカウントを新たに作成しなければならない。
いや、/etc/passwdや/etc/shadowや/etc/groupの必要部分をコピーする方法もあるんだけど、OSのバージョンがかなり違ってちょっと怖いので今回はやらないつもり(汗)

ユーザーの作成そのものは以前書いた「ユーザー設定の移行(備忘録)」の手順で行えば良いのだけど、この記事を書いた時はパスワードの設定をどうすれば簡略化出来るか判らなかった。
その後調べていたら、
# echo [パスワード] | passwd –stdin [ユーザ名]
とすれば、コマンドラインから一発でパスワードを入力できることが判ったので、これを移行するユーザー分だけスクリプトに書いて実行すれば楽に出来るなぁ。

人気ブログランキングへ←クリックしてくれると嬉しいです。

VAIOにubuntuを入れてみた

昨日書いたけど、VAIOノート「VGN-G2AAPS」にubuntuをインストールしてみた。
メモリが1.5GBしかないので、インストールしたのは日本語 RemixのUbuntu 14.04の32bit版。
インストール自体はイメージを焼いたDVDを入れて起動し、あとは殆ど画面の指示に従って行えば特に問題無く出来た。
動作も古いハードウェアの割にはスムースで、FirefoxやLibre Officeのアプリの動作もそれほど重いとは感じなかった。
元々それほど重たい処理をさせるつもりの無いサブのサブみたいなノートだから、これはこれでそこそこ使えそうだな。

人気ブログランキングへ←クリックしてくれると嬉しいです。

VAIOにubuntu

ひょんなことで手元に来たSONYの小型ノートPC「VGN-G2AAPS」。
インストールされているOSがWindowsXPなので、このままではちょっと使えない。
そこでデスクトップ用のLinuxでも入れてみようかと思い、ちょっと試してみた。
試してみたのはubuntuの15.10で、配布サイトからDVDイメージをダウンロードしてDVDに焼き、VAIOに入れてDVDから起動してみた。
ubuntuはインストールDVDから起動すると”お試し”が出来るので、先ずはインストールせずに試してみたところ、Xの起動に時間がかかったがこれはモジュールをDVDから読み込んでいるためである程度は仕方が無い。
一度Xが起動するとワードプロセッサー(Libre Office Writer)も、ブラウザ(Firefox、ubuntu browser)もそこそこ動いてくれた。
なにせCPUがCore2DuoのU7600(超低電圧版1.2GHz動作:Meromコア)でメモリが1.5GB(オンボード512MB、増設1GB)という一昔も二昔も前のスペックなのに、そこそこ動いてくれるのは良い。
今回試したのは64bit版だけど、メモリが1.5GBしか無いので32bit版でも良い(というかメモリ2GB以下は32bit版が推奨されている)から、インストールするなら32bit版だろうなぁ。
ただ、日本語 RemixのイメージはUbuntu 14.04までしか無く、それより新しい15.10とかは64bit版しか無い。
ただサポート期間は14.04のほうが長く2019年4月まで(15.10は2016年7月まで)らしいので、入れるならこれなのかな?

人気ブログランキングへ←クリックしてくれると嬉しいです。

ユーザー設定の移行(備忘録)

仕事で使っているサーバの負担が大きくなってきたので、処理を分散させるために仮想でもう一台作った。
新しいサーバに一部の処理を移行させるのだけど、やっているのがメールの代理受信なので、ユーザーデータも移行しなければならない。
スプールの中身は移さずに全て受信後に新しいサーバに移行して貰うつもり。
なので新しいサーバでユーザーを新たに登録する作業が必要で、いちいち手作業でやっていてはミスが出るので元のサーバのユーザー情報を元に登録用のスクリプトを作った。
最初に旧サーバから/etc/passwdファイルを新サーバにコピーしておく(実際には/etc/alisesや/etc/groupファイルもコピー)。
# ”awk -F : ‘{print “/usr/sbin/useradd -u ” $3 ” -g ” $4 ” -d ” $6 ” ” $1}’ passwd > hoge”
そうして上のコマンドを実行するとファイル”hoge”の中に
/usr/sbin/useradd -u 501 -g 501 -d /home/user1 user1
のような登録用のコマンドが作られるので、後はこれを実行すればユーザーの登録が出来る(移行させたくないユーザーの分は行を削除するかマスクしておけばOK)。
問題はパスワードの設定で、一つ一つ手で入力していたら大変(ユーザー数が三桁あるので)。
これをなんとかバッチで流し込めないか現在考え中・・・
これも旧サーバの/etc/shadowファイルから切り出して流し込めれば楽なんだけどなぁ・・・
一度
useradd -u 501 -g 501 -d /home/user1 -p ”切り出したパスワード文字列(暗号化済み)” user1
でやってみたらユーザーは登録出来るけどパスワードは正しく設定されなかったorz

さて、どうしたものか???

人気ブログランキングへ←クリックしてくれると嬉しいです。

”ゴミ箱”機能を追加した

昨日ファイルサーバ内で大量のファイルを移動されて見えなくなった対策の一部として、ファイルサーバにゴミ箱機能を追加した。
ファイルサーバではsambaを使っているので、次のページ
「Sambaでごみ箱を使うには(Red Hat Linux編)」(@IT)
を参考に、/etc/samba/smb.confに記述を追加してユーザーが削除したファイルは実際に削除されずに指定したディレクトリに移動するようにした。
移動する際に同じ共有ドライブに移動されるとディスクスペースを圧迫してしまうので、容量に余裕のあるパーティションにゴミ箱用のディレクトリを作り、各共有ディレクトリのルートにはそこへのシンボリックリンクを張った。
試しにファイルを削除してみると無事にそのディレクトリにファイルが移動したので、ゴミ箱ディレクトリは同じファイルシステム上に無くても良いみたい。
後は削除してから一定以上の日数が経過したファイルの自動削除の仕掛けを作ればOKかな?

人気ブログランキングへ←クリックしてくれると嬉しいです。

たまにしか書かないと忘れるなぁ(汗)

サーバーのログの中から特定の文字列を探すのにコマンドラインから
”grep ほげ げしょ | awk ‘{print $8}’ | uniq
と書くところを、最初は
”grep ほげ げしょ | sed ‘{print $8}’ | uniq
と書いてしまい
”sed: -e 表現 #1, 文字数 3: コマンドの後ろに余計な文字があります”
というエラーを返されてしまった(汗)。
それを見ておかしいな?と思って直したのが
”grep ほげ げしょ | sed {print $8} | uniq
で、これでも同じエラーが出る(当たり前)。
そもそも”sed”を使うつもりは無く”awk”と書いているつもりなので、そこが間違っているとは気付かなかった。
2回目のエラーでようやくawkではなくてsedと書いていることに気付いて直したと言う(汗)。
いやぁ、しばらくぶりに書くと忘れてるねぇ・・・

人気ブログランキングへ←クリックしてくれると嬉しいです。

なんとかなりそうだ・・・

メールスプールが満杯で新たなメールが受け取れ無くなったアカウントのスプールファイルを手動で編集して書き戻したところ、ファイルサイズが1割ほど小さくなっていた。
その状態でnPOPを使ってログインしてみると幸いにもタイムアウトを起こさなかったので、サイズが大きくて不要なメールを選択して削除した。
その結果最終的にはファイルサイズが1/4以下になったので、これならユーザーのメーラーでもタイムアウトせずに読める筈。
ただ、配信不能でmailキューに溜まっているのが200通以上あるので、現在はこれのフラッシュ中。
フラッシュは
sendmail -q (好みで”-v”オプションを付けるのも可)
で行っているけど、溜まっていたキューの中にも大きくて不要なのがありそうだから、終わったら再度整理しておかないとならないかな?(汗)

それにしても仕事に出てるんだったら休みの日以外はメールを読んでくれよなぁ・・・いや!読まなくてもいいからサーバーから取りこんでサーバー上のは削除してくれよ・・・

つーか、メールシステムを全面的に変更したいな(汗)

人気ブログランキングへ←クリックしてくれると嬉しいです。

また満杯にされた・・・

メールサーバから配信不能のメールが来たので該当アカウントのスプールを見るとファイルサイズが限界に・・・orz
該当アカウントのユーザーに連絡して受信して貰おうとしてもログインに時間がかかり過ぎてメーラーがタイムアウトを起こしてしまう。
仕方が無いのでこちらでいつも使っているnPOPというメーラーで不要でサイズの大きなメールを削除しようとしてもやはりタイムアウト。
最終手段としてサーバーに入ってスプールファイルを直接編集して多少なりともサイズを減らす作戦に出た(汗)。
半日掛けても最後までは終わらなかったけど、取り敢えず編集を終わらせたが、ファイルの書き込みにまた時間が掛かる。
さて、どれくらいサイズが小さくなったかなぁ?

人気ブログランキングへ←クリックしてくれると嬉しいです。