blog

日常・技術のことを記録する

シェルスクリプト

postgresqlインストールメモ

CentOS7 ●install yum -y install postgresql-server postgresql-setup initdb ●DBサーバへ接続 psql -U postgres -h 127.0.0.1 -w ●DBへ接続(\cの後はデータベース名) \c sampledb ●テーブル作成 sampledb=# CREATE TABLE sampletbl sampledb-# (id char(4)…

シェルスクリプトの静的解析ツール(shellcheck)をyum installまで

シェルスクリプトの静的解析したいなーってとき。 shellcheckっていうツールが便利だった。 github.com 「使われてない変数が定義されていますよ」とか「変数で$10は使えませんよ、正しくは${10}ですよ」みたいなお知らせをしてくれる。 インストールした環…

bash -xv(シェルスクリプトのデバッグオプション)が便利

シェルスクリプトのデバッグしたいなーってとき、 今まではロギング関数自作してチマチマやってたんだけど... 便利なオプション教えてもらった\(^o^)/✨ シェルスクリプトサンプル 標準出力に文字列を表示する、lsコマンドでエラーを起こす、な単純な動作の…

curlコマンドで、ステータスコードとレスポンスボディだけを取得する

シェルスクリプトで、httpリクエストのレスポンスをアレコレする必要があったのさ。 このコマンドで実現可能 curl -o - http://google.com -w '%{http_code}\n' -s 実行結果 $ curl -o - http://google.com -w '%{http_code}\n' -s <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> T…</body></html>

FTPファイル転送をバッチファイルモードで実行して、ログを取る(CentOS)

ftp実行した内容を解析したくてさ! RHEL(centOS)にて。 登場人物 送信したいファイル(ftptest.txt) ftp用バッチファイル(hoge.bat) ftp実行ログファイル(fuga.log) 手順 クライアントPCで以下を作成。 送信したいファイル(ftptest.txt)なんでもいい…

「シェルスクリプトを起動したときのコマンド文字列そのもの」をシェルスクリプト内で取得する方法

ログ取るときとかで必要になった。 シェルスクリプトを実行したときに、 スクリプト内で「当該シェルスクリプトを起動したときのコマンド文字列そのもの」を取得したいとき。 例えばシェルスクリプトを実行して、 $sh hoge.sh ↑実行後、スクリプト内で"sh ho…

秒数指定でcronする方法は

30秒ごとにcronさせたい これでできたんだけど、 * * * * * for i in `seq 0 30 59`;do (sleep ${i} ; sh /home/foouser/bar.sh ) & done; 30秒ごとなのに0 30 59 があるってなに?3回実行されんのか? と思って実際にcron設定してみたら、やっぱり30秒おき…

スクリプトをちょっと安全にする小ネタ

たとえばシェルスクリプトの場合。普通はシバンを #! /bin/sh と書くところを、ハイフン(マイナス記号)をつけて #! /bin/sh - とする。 こうすると、「オプションがこれ以上ありません」と明示することができるそうな。 いろんなセキュリティアタックを防ぐ…

シバンは誰が読みとってくれてるの

普段、シェルスクリプト書くときは先頭行に #!/bin/sh ってつけなさい、と言われるじゃん。 この先頭行の話、なんとなく知ってはいたこととして ・名称は「シバン」という ・プログラムの先頭行に書かなければいけない ・書くと、「当プログラムはこのパスか…