とっても簡単な自動化系コマンドメモ
ひぇえ、こっちは久しぶりだ。。
技術系の話はなるべくこっち、技術系じゃないことの記録はendless pulse側に書くようにしていこうと思ったけど、そもそも書く頻度が。
自分が適当に開発環境管理のためにやったことをメモしておいた。
プロジェクトが変わるわけだけど、こういうことやるだけで、ずいぶん早く帰れるようになるのよねー。小さい工夫の積み重ねでなるべくルーチンは自動化することを、今後も心がけていきたい。
【SSHログインしてコマンド実行を自動化】
telnetもftpもポートの空いてないイントラ内サーバのために以下をした。
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インストールは不許可…)
あとはこれをちゃんと他のメンバーに伝えて、メンテナンスしていけるようにしなければ…!簡単に聞こえるだろうけれど、エンジニアのチームではないので、それだけも厳しいのだよねえ…