このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 5 / 昨日: 1
総計: 728
- Dokuwiki.fl8.jp(254)
- 13 CentOS6メール設定(14)
- 34 UnboundでHA構成(13)
- 05 rsync(13)
- 02 ProFTPD(12)
最近の更新
このページへのアクセス
今日: 5 / 昨日: 1
総計: 728
実行するサーバの「33306」ポートを接続先の「localhost:3306」へポートフォワード
$ ssh -2 -f -N -L 33306:localhost:3306 root@157.7.167.197
・オプションの説明
-2: バージョン2だけを利用
-f: バックグラウンドに移行するよう指示します。
-N: リモートコマンドを実行しません。これはポート転送のみをおこないたい場合(プロトコル バージョン 2 のみ)。
-L: ポート転送を追加したい場合
#!/usr/bin/perl use Net::SMTP; use Expect; our($DEBUG) = 0; my(@ret) = `netstat -anl --tcp`; my($line) = ''; my($f) = 0; foreach $line (@ret){ $f = 1 if $line =~ /\:\:1\:3307/; } if($DEBUG){ print $f . "\n"; } if($f == 0){ my($command) = 'ssh -2 -f -N -L 3307:localhost:3306 root@hogehoge >/dev/null 2>&1'; my($ex) = ""; my($mes) = ''; unless($ex = Expect->spawn($command)){ $mes = "expect not spawn\n"; } else { unless ($ex->expect(15,"password:")) { $mes = "login prompt not got\n"; } else { print $ex->send( "[PASSWORD]\n"); $ex->expect(10); $ex->hard_close(); $mes = "relogin ok\n"; } } $smtp = Net::SMTP->new('mx.hogehoge.com'); $smtp->mail('tunnel_checker@hogehoge.com'); $smtp->to('hoge@hoghoge.com'); $smtp->data(); $smtp->datasend("To: hoge\@hogehoge.com\n"); $smtp->datasend("From: tunnel_checker\@hogehoge.com\n"); $smtp->datasend("Subject: [alert] tunnel down\n"); $smtp->datasend("\n"); $smtp->datasend("ssh tunnel via watcher_db is down\n"); $smtp->datasend("\n"); $smtp->datasend($mes); $smtp->dataend(); $smtp->quit; }