2013年10月19日土曜日

複数URLのリンク切れをチェックするシェルスクリプト


ドメインの異なる複数のWebサイトに対してリンク切れが発生していないか
URLのリストに従ってチェックするシェルスクリプトのサンプルです。
wgetの--spiderオプションを利用しています。

OS: CentOS 6.4(64-bit)
wget: GNU Wget 1.12 built on linux-gnu.


■シェルスクリプトサンプル
#!/bin/sh
#######################################################################
# << 機能概要 >>
# URLリストを読み込んでリンク切れチェックするスクリプト
#
# << 変更履歴 >>
# Version  変更日       変更者        変更内容
# --------+------------+-----------+----------------------------------
#     1.0  2013/10/12   tanyao      New
#######################################################################

URL_LIST=url_list.txt
OUTPUT=url_result.txt

# URLリスト存在チェック
if [ ! -e $URL_LIST ]; then
    echo "`date \"+%Y%m%d %H:%M:%S\"` ERROR: $URL_LIST is not exist."
    exit 1
fi

# 出力結果クリア
:> $OUTPUT

# URLリスト読み込み
i=0
while read line
do
    url[$i]="$line"

    # リンク切れチェック結果出力
    wget -nv --spider --timeout 15 -t 1 ${url[$i]} -a $OUTPUT

    i=`expr $i + 1`
done < $URL_LIST

exit 0
url_check.sh というファイル名で保存し、パーミッションを755に変更。

■URLリストファイル準備
[root@centos64 url_check]# head url_list.txt
http://kakaku.com/item/J0000011385/
http://kakaku.com/item/J0000009488/
http://kakaku.com/item/K0000588606/
http://kakaku.com/item/K0000590023/
http://kakaku.com/item/K0000999999/
http://static.panoramio.com/photos/large/94004107.jpg
http://static.panoramio.com/photos/large/94007107.jpg
http://static.panoramio.com/photos/large/9d004108.jpg
http://www.atmarkit.co.jp/ait/articles/1302/05/news222.html
http://topics.jp.msn.com/world/topics.aspx?topicid=1985
url_check.sh と同階層にurl_list.txtを配置する。

■スクリプト実行
url_result.txtが出力される。
[root@centos64 url_check]# ./url_check.sh
[root@centos64 url_check]# head url_result.txt
2013-10-07 00:39:20 URL: http://kakaku.com/item/J0000011385/ 200 OK
2013-10-07 00:39:21 URL: http://kakaku.com/item/J0000009488/ 200 OK
2013-10-07 00:39:21 URL: http://kakaku.com/item/K0000588606/ 200 OK
2013-10-07 00:39:21 URL: http://kakaku.com/item/K0000590023/ 200 OK
http://kakaku.com/item/K0000999999/:
リモートファイルが存在していません -- リンクが壊れています!!!
2013-10-07 00:39:22 URL: http://static.panoramio.com/photos/large/94004107.jpg 200 OK
2013-10-07 00:39:22 URL: http://static.panoramio.com/photos/large/94007107.jpg 200 OK
http://static.panoramio.com/photos/large/9d004108.jpg:
リモートファイルが存在していません -- リンクが壊れています!!!
wgetのバージョンによっては、ステータスコードが200の場合、何も出力されない場合があります。

リンクチェック対象が多いとそれなりに時間がかかります。この情報がお役にたてれば幸いです。

2013年10月10日木曜日

RedHatサブスクリプションの登録方法

OSインストール後にrhn_register のコマンドラインバージョン画面にて
RHEL6のサブスクリプションを登録する手順を中心に説明します。
これを完了するとyumが利用できるようになります。

OS: Red Hat Enterprise Linux 6.4 (64-bit)


■Red Hatログイン再作成

サブスクリプションを購入すると下記のような「Red Hatログイン作成リクエスト」メールメールが送られてくる。
そこに記載されているリンクからRedHatログインを作成する。
お客様は下記のアカウントでRed Hatサブスクリプションを申し込まれています。 お名前 : XXXXX YYYYY CORPORATION アカウント番号: 53***** - *サブスクリプションにアクセスするには、Red Hatログインが必要です。* ログインをまだお持ちでない場合は、以下のリンクをクリックして作成してください: http://www.redhat.com/wapps/ugc/register.html?id=832qwer56789okfiexxxvvvcccfffhn.redhat.com - セキュリティ上の理由により、上記のリンクが機能するのは1回だけで、2013年xx月xx日 以降にこのリンクは無効になります。
ログインID、パスワード、メールアドレス等必要情報を登録する。
インストール番号は、今先作成したRed Hatログインで
サブスクリプション > インベントリ > コントラクト 102xxxxx > サブスクリプション 29xxxxx
上記ページに表示されている。

■rhn_register コマンドラインバージョン画面

OSインストール後、ssh等でログインし、rootアカウントにスイッチ。


以降は基本的に画面の説明に従って進む。




Tabキーで項目間を移動、スペースキーで選択。って画面下に表示されていますね…。


RedHatログインとパスワードは先ほどRHNで登録した内容を設定。




プロファイル名にはサーバのホスト名等を設定。














以上でサブスクリプションの登録は完了です。
何かのお役にたてれば幸いです。画面キャプチャ張り付けまくった甲斐がありますように・・・。