yumでエラー [LINUX]
まずはyumだが、いきなりのエラー。
# yum -y update
読み込んだプラグイン:fastestmirror, security
更新処理の設定をしています
Loading mirror speeds from cached hostfile
エラー: Cannot retrieve metalink for repository: epel. Please verify its path and try again
調べてみるとepelのURLが定義されているものだと接続できないらしい。
そこで
/etc/yum.repos.d/epel.repo
を編集。
URLをmirror無効にし、baseurlを有効にしたところ、無事に動作した。
ruby, rails, gem バージョン確認 [LINUX]
Redmineの構築にあたり、rubyやrailsが必要となります。
バージョン合わせも必要ということで、それぞれのバージョン確認方法についてです。
# ruby --version
ruby 2.0.0p451 (2014-02-24 revision 45167) [x86_64-linux]
# rails --version
Rails 3.2.17
# gem --version
2.0.14
teratermマクロで日本語自動対応 [LINUX]
しかし10年以上前に構築したサーバはEUCになっていて、定期的にLINUX上のログをteratermマクロで自動取得すると日本語が文字化けしてしまいます。
この制限のため、teratermの漢字設定をマクロが実行される前にEUCに変更しておくというアホみたいな運用をしていました。
この問題を解決すべくネット検索したところ、ぴったりの情報がありました。
Tera Termマクロ-文字コード自動切り替え(文字化け対策その壱)
http://www.j-oosk.com/teraterm/mojibake/217/
対象サーバに接続してから、$LANGで文字コードを判定し、TTX Kanji Menuのインタフェースに合わせたコマンドを発行します。
EUCであれば以下の通りです。
callmenu 54011 ; [KanjiCode] Recv: EUC-JP
callmenu 54111 ; [KanjiCode] Send: EUC-JP
私自身今回の用途は対EUCなので$LANG判定は不要で上記だけ追加でよかったのですが、いつか使うかもしれないことを考慮し$LANG判定から他文字コード対応もマクロに記述しておきました。
CentOS6.6 PCからftp接続できない [LINUX]
インストール後の作業
・/etc/selinux/config編集
SELINUX=disabled
・vsftpd起動設定
chkconfig vsftpd on
そしてOSを再起動 。
teratermから接続はできるが、FFFTPでは接続先が見つからないというエラーが発生。
久々の構築なので何か忘れている…
普通に考えると残りはファイアウォール設定。いつも明示的な設定はやっていなかったような…
CentOS6.3でうまく動いている環境と比較する。
# ps -ef | grep iptable
root 11658 31882 0 13:18 pts/0 00:00:00 grep iptable
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
プロセスは動いておらず、設定は空っぽ。なんでも通す設定。
これに対して新サーバは
# ps -ef | grep iptable
root 1503 1487 0 22:27 pts/0 00:00:00 grep iptable
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
あれ、何か設定がたくさんされている。そういえば、デフォルトは絞り込み設定だったような。
が、それらしいプロセスは上がっていない。別の方法で確認。
# chkconfig --list | grep ipta
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
OS起動時にファイアウォールが有効になってる!
サービス名とプロセス名が違うのか!?
というわけでプロセスを停止。
# /etc/rc.d/init.d/iptables stop
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: モジュールを取り外し中: [ OK ]
# chkconfig iptables off
これで無事にftpできました。
Postfixでdeferred その2 [LINUX]
一時保管とはいったいどれくらいなのか!?
これは設定ファイルで、その値を定義します。
/etc/postfix/main.cf
maximal_queue_lifetime=2d
これで2日間保管し、その間定期的に再送します。
再送したところで、そもそもの原因が取り除かれなければ、2日後に送信者へエラーメッセージが送られてくるわけです。
Postfixでdeferred [LINUX]
maillogでdeferredを見つけた!
メールのstatusはこんな感じのものがあります。
- status=sent 配送OK
- status=bounce 配送NG
- status=deferred 一時的に配送できなかったがリトライ
で今回はdeferredについて。
送信できなかったメールは、以下のディレクトリに一時格納されてます。
/var/spool/postfix/deferred
この下に、数字や英字のディレクトリができていて、それがキューの頭一文字とそろっているわけです。
ログを見た際、例えば B8DB216FD3E とでていたならば、ディレクトリBの下に格納されているわけです。
但し、これらはバイナリ形式なので、viなどのテキストエディタでまともに見ることはできません。
参照するには、
# postcat -q B8DB216FD3E(キュー名) | more
とします。
この一時格納情報をまとめて見る場合には以下のようにします。
# postqueue -p | more
これであたりをつけて、個別に参照するのもありです。
RHELでuuencode [LINUX]
RHEL2.6.9で、mailコマンドを使い、暗号化したファイルを送付することを実現したい。
その1 暗号化
gpgコマンドを使う。
$ pgp -c ファイル名
パスフレーズを入力:
パスフレーズを再入力:
これでファイル名+.gpgの出来上がり。
復号化は、"pgp 暗号化ファイル名"で出来た。
その2 mailにファイルを添付
uuencodeを使うらしい。
しかし、この環境には同コマンドは存在していない!
どうやら、sharutilsなるパッケージを導入しなければならないらしい。
まずはyumでインストール状況の確認。
# yum list | grep sharutils
-bash: yum: command not found
Σ(゚Д゚|||)
そもそもyumが入ってない!
rpm使うにも、パッケージ名じゃなくて、ダウンロードしたいファイル名がわからないと、なんにもできない。
うーーー、一旦保留とする゚(゚´Д`゚)゚
ネットワーク上のパケットを確認する(tcpdump) [LINUX]
LINUX上で通信アプリを開発する際、受信が正しく行えない場合に用いています。
(1) アプリとして、パケット送信はできているのか?
(2) 対象サーバまでパケットは届いているのか?
(3) 対象サーバから受信アプリまで届いているのか?
上記(2)の確認にtcpdumpコマンドを使用します。
使用例:
tcpdump -nX tcp and dst host 192.168.1.1
・192.168.1.1宛のTCPパケットをキャプチャする。
・取得パケットを16進でdump表示する(-Xオプション)
・ホストの名前解決をしない(-nオプション)
LINUX OSのバージョンを調べる [LINUX]
複数の社内サーバを管理しているのですが、時にLINUX OSのバージョンを忘れてしまうことがあります。
資料にまとめておけよ、という突っ込みはありますが‥
その1
[root@localhost ~]# cat /proc/version
Linux version 2.6.9-42.0.3.ELsmp (brewbuilder@hs20-bc1-7.build.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3.4.6-3)) #1 SMP Mon Sep 25 17:28:02 EDT 2006
その2
[root@localhost~]# uname -a
Linux localhost 2.6.9-42.0.3.ELsmp #1 SMP Mon Sep 25 17:28:02 EDT 2006 i686 i686 i386 GNU/Linux
その3
[root@localhost ~]# dmesg | more
Linux version 2.6.9-42.0.3.ELsmp (brewbuilder@hs20-bc1-7.build.redhat.com) (gcc version 3.4.6 20060404 (Red Hat 3
.4.6-3)) #1 SMP Mon Sep 25 17:28:02 EDT 2006
その4
これはredhat系に限りだと思います。
[root@localhost ~]# cat /etc/redhat-release
Red Hat Enterprise Linux ES release 4 (Nahant Update 7)
とか
CentOS release 5.5 (Final)
という結果を得られます。