おもしろ最新情報(こはるのページ)

おもしろ新最新情報をお届けします

No772 バッチ処理で昨日の日付を求める方法です。

2011年06月23日 | おもしろ新最新情報
最新情報をお届けします。

MS-DOSのバッチ処理で、昨日の日付を求めたいときは
次のようにします。

@echo off
::今日の日付を取得
set yy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%
:: echo 今日は、%yy%年%mm%月%dd%日です。

::1日前の日付を計算する
set /a dd=1%dd%-101
set dd=00%dd%
set dd=%dd:~-2%
set /a ymod=1%yy% %% 4
if %dd%==00 (
if %mm%==01 (set mm=12&& set dd=31&& set /a yy=1%yy%-101)
if %mm%==02 (set mm=01&& set dd=31)
if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29))
if %mm%==04 (set mm=03&& set dd=31)
if %mm%==05 (set mm=04&& set dd=30)
if %mm%==06 (set mm=05&& set dd=31)
if %mm%==07 (set mm=06&& set dd=30)
if %mm%==08 (set mm=07&& set dd=31)
if %mm%==09 (set mm=08&& set dd=31)
if %mm%==10 (set mm=09&& set dd=30)
if %mm%==11 (set mm=10&& set dd=31)
if %mm%==12 (set mm=11&& set dd=30)
)
echo 昨日は、%yy%年%mm%月%dd%日です。


ここで注目なのは、1日前の日付を計算する式

set /a dd=1%dd%-101

です。

set /a dd=%dd%-1

でいいじゃないかと思いでしょうが、
今日が8日か9日の時に次のようなエラーが出ます。

無効な数字です。数値定数は 10 進 (17 桁)、16 進 (0x11 桁)、または 8 進 (021 桁) です。

そう、8日だと dd が08となりますが、
数字の頭に0が付いていると8進数とみなされるので、
8と9が入っていれば無効な8進数となるのです。

そこで、 08-1 ではなく、108-101 と、10進数の計算をさせるのがみそです。


No771 BGPのFull Routeがいきなり2万経路も増えた

2011年06月16日 | おもしろ新最新情報
最新情報をお届けします。

2011年6月16日8時30分ころに、BGPルータの
メモリー使用率がいきなり3%も増えました。

何があったのか、まさかBGPの経路がいきなり増えるわけも
ないだろうと思いながら、BGPの経路数グラフを見たら
35万8千から37万7千に突然増えていました。

何があったのでしょう。

ちなみに、2000年1月には、全部で7万ルートしかありませんでした。
もう5倍ですね。

ルータのメモリーが足りなくなるのも時間の問題のようです。

256Mで100万円以上するメモリーは
そう簡単には買えませんが。

No771 IPv6対応のSquid(続き)

2011年06月09日 | おもしろ新最新情報
No771 IPv6対応のSquid(続き)

最新情報をお届けします。

昨日の設定では、SquidはIPv4を優先して見に行きます。
IPv6を優先してみるためには、次の設定が必要です。

/usr/local/squid/etc/squid.conf
acl to_ipv6 dst ipv6
http_access deny to_ipv6 !all
tcp_outgoing_address xxx.xxx.xxx.xxx !to_ipv6
tcp_outgoing_address yyyy:yy:yy:yy::yy:yy to_ipv6

xxx.xxx.xxx.xxxは、Squidサーバ自体のIPv4アドレス
yyyy:yy:yy:yy::yy:yyは、Squidサーバ自体のIPv6アドレス

これで、The Kame Project http://www.kame.net/ をみると
踊るカメを見ることができます。

No770 IPv6 Dayに対応してみた

2011年06月08日 | おもしろ新最新情報
最新情報をお届けします。

6月8日は World IPv6 Dayなので、IPv6に対応してみました。

といっても、会社の回線は、IPv4なので対応はできません。
が、毎月490円で借りているDTIのVPSサーバは、IPv6に対応しているので
ここに、Proxyサーバを立てて、ここを経由すれば、IPv6のWebページが
見られるという寸法です。

Squidでは、Version3.1以降がIPv6対応のようなので、ソースから入れましました。

手順は次の通り

wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.12.tar.gz

tar zvxf squid-3.1.12.tar.gz
cd squid-3.1.12

./configure --prefix=/usr/local/squid --with-default-user=squid

make

g++: command not found

あれ、gccがいない

yum install -y gcc gcc-c++

再度
./configure
make
sudo make install

squidユーザ作成
/etc/group
squid:x:82:
/etc/passwd
sshd:x:82:82:Proxy Server:/usr/local/squid:/sbin/nologin
pwconv

chown -R squid:squid /usr/local/squid

認証用のファイルを用意しておくます。

htpasswd -c /usr/local/squid/etc/.htpasswd hogehoge
New password: ******
Re-type new password: ******
Adding password for user hogehoge

cd /usr/local/squid/etc
vi squid.conf

#Userとグループをsquidに
cache_effective_user squid
cache_effective_group squid


#ポートを8080に固定
http_port 8080
#Proxy経由でSubversionを使う場合に必要
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
#アクセスに認証を利用
auth_param basic program /usr/local/squid/libexec/ncsa_auth /usr/local/squid/etc/.htpasswd
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
#認証を使うようにする設定
acl authen proxy_auth REQUIRED
#上のaclで設定したIPを認証で使えるようにする
http_access allow authen

cache_dir ufs /usr/local/squid/var/cache 100 16 256

次にキャッシュディレクトリの構築

/usr/local/squid/sbin/squid -z

起動スクリプトを用意して起動します。

cp contrib/squid.rc /etc/init.d/squid
chmod 755 /etc/init.d/squid
vi /etc/init.d/squid
#!/bin/sh
# chkconfig: 2345 80 30
# description: Squid
# processname: squid
chkconfig --add squid
chkconfig squid on
service squid start

あれ怒られた
WARNING cache_mem is larger than total disk cache space!

メモリーサイズを小さくする
vi /usr/local/squid/etc/squid.conf
cache_mem 64 MB

service squid stop
service squid start

ここで、KDDIのサイトにつないで右上にvia IPv6と出れば成功

http://www.kddi.com/

あれ、via IPv4になっている。

http://test-ipv6.jp/
でチェックをすると、ちゃんとIPv6接続になっているが、
DNSサーバがIPv6対応になっていないんじゃないかといわれている。

dig aaaa aaaa.v6ns.test-ipv6.com
を実行しても、結果が出ない。

DNSをいぢくらなくっちゃ。