Info

普段何気なくつかってるTeraTermですが、マクロというものがあります。TeraTermヘルプを見れば詳しく書いてあります。FTPもコマンドを外部ファイルに待たせば一覧の処理を自動化してくれます。今日はちょっと実際に作ってたものをサンプルとして掲載します。
処理の流れは以下のようになります。

  1. SSHでWindowsクライアントからサーバーAに接続して、Apacheログをftpから取得できる場所にコピー
  2. ftpでサーバーAに接続して、ApacheログファイルをWindowsクライアントにダウンロード
  3. SSHで再びサーバーAに接続して、ダウンロードしたApacheログファイルを削除
  4. ftpでサーバーBに接続して、Apacheログファイルを特定のディレウトリにアップロード
  5. Windowsクライアントのログファイル削除
  6. SSHでサーバーBに接続して、Apacheログ解析プログラムを実行

1. batファイル作成
apache_log.bat

“C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\copylog.ttl”
ftp -s:”C:\apache\getlog.ftp”
“C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\deletelog.ttl”
ftp -s:”C:\apache\putlog.ftp”
cd apache_log
del /Q *.apache.gz
“C:\Program Files\teraterm\ttpmacro.exe” “C:\apache\update.ttl”

2. ttlファイル作成
copylog.ttl

connect ‘192.168.0.2:22 /ssh /auth=password /user={user} /passwd={pw}’
wait ‘bash-2.04$ ‘
sendln ‘copylog-ctl’ ← シェルで作成したログコピースクリプト
wait ‘bash-2.04$ ‘
sendln ‘exit’

deletelog.ttl

connect ‘192.168.0.2:22 /ssh /auth=password /user={user} /passwd={pw}’
wait ‘bash-2.04$ ‘
sendln ‘rm /home/tomcat/htdocs/apache_log/*’
wait ‘bash-2.04$ ‘
sendln ‘exit’

update.ttl

connect ‘192.168.0.2:22 /ssh /auth=password /user={user} /passwd={pw}’
wait ‘[localhost@test ~]% ‘
sendln ‘/usr/local/apache/htdocs/cgi-bin/awstats/update.pl’
wait ‘[localhost@test ~]% ‘
sendln ‘exit’

3. ftpファイル作成
getlog.ftp

open 192.168.0.2
{user}
{pw}
binary
prompt
cd /apache_log/
lcd apache_log
mget *
quit

putlog.ftp

open 192.168.0.3
{user}
{pw}
binary
prompt
cd /awstats/apache_log
put apache_log/*.apache.gz
quit

ここまで読んでたらある疑問が出てくると思います、なぜ 192.168.0.2 と 192.168.0.3 を直接やり取りしないかと?
それは事情によりお互いに直接接続することはできず、一旦Windowsを経由しないといけなかったんです。

Comments

No comments yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Basic HTML is allowed. Your email address will not be published.

Subscribe to this comment feed via RSS