endless pulse

どっくんどっくんふるえる毎日を過ごしています

とっても簡単な自動化系コマンドメモ

ひぇえ、こっちは久しぶりだ。。
技術系の話はなるべくこっち、技術系じゃないことの記録はendless pulse側に書くようにしていこうと思ったけど、そもそも書く頻度が。

自分が適当に開発環境管理のためにやったことをメモしておいた。
プロジェクトが変わるわけだけど、こういうことやるだけで、ずいぶん早く帰れるようになるのよねー。小さい工夫の積み重ねでなるべくルーチンは自動化することを、今後も心がけていきたい。

SSHログインしてコマンド実行を自動化】

telnetftpもポートの空いてないイントラ内サーバのために以下をした。
SSHしかポート空いてなくて、やりたいことはただある場所のコマンドを実行したいだけだったので…
1) ssh-keygenコマンドなどで、RSA鍵を作成
2) 以下のシェルスクリプトを作成

#!/bin/bash
ssh username@10.252.xx.x ./コマンド名

【mountしてコピーの自動化】

そのまんまだけど。
やりたいことは、ログを定期的にファイルサーバの指定の場所に送付する。

  • t オプションでファイルシステム指定もだいたい付けてた。iocharsetは、OSデフォルトがUTF-8でShift-JISをマウントするときはなくても平気だったけど、OSデフォルトがEUC-JPでShift_JISをマウントしたときは設定しないとだめだった。
#!/bin/bash
mount -o username=xxx,pasword=xxx,iocharset=xxx //10.252.xx.xxx/xxx(マウント先) マウントフォルダ
cp xx マウントフォルダ/xx
umount -l マウントフォルダ

ftpの自動化】

言わずと知れたヒアドキュメント。ログを定期的にファイルサーバの指定の場所に送付するために使ってた。mountが使えないUNIX系OSだったので…

#!/bin/sh
ftp -n 10.252.xx.xx << EOF
  user username password
  cd xxx
  put $1
  disconnect
  quit
EOF

telnetでログインしてコマンドを実行の自動化】

telnetにはヒアドキュメントが無いらしくて、検索かなりした。
このサーバはtelnetしか空いてなくてsshは使えない。やりたいことは、サーバ上の決まったシェルスクリプトの実行だったので、以下のような感じ。

#!/bin/bash
./test.tmp | telnet 10.252.xx.xx > test.log

test.tmpの内容は以下。リモート側からの返事を待つのをsleepで。

#!/bin/bash
sleep 1; echo username
sleep 1; echo password
# 〜様々な処理〜
sleep1; echo exit


このあたりをコツコツサーバ上でviで書いてた。(emacsインストールは不許可…)
あとはこれをちゃんと他のメンバーに伝えて、メンテナンスしていけるようにしなければ…!簡単に聞こえるだろうけれど、エンジニアのチームではないので、それだけも厳しいのだよねえ…