2019-05-08 17:05:41
概要execコマンドは現在のプロセスを実行するコマンドで置き換えるコマンドだが、引数無しで使うとリダイレクトの動的変更ができる。
ちょうどmaster直プッシュの際にプロンプトで確認するようにするで
#!/bin/sh
exec < /dev/tty
read ANSWER
というコードが出てきてよくわからなかったので調べてみたのがきっかけ。
使い方#!/bin/sh
echo "Output to stdout" // 標準入力
exec > redirect.txt // ファイルディスクリプタを変更
echo "Output to file" // ファイルに出力される...
アプリケーション
bash
shellscript
exec
2019-05-08 17:04:11
概要gitでmasterブランチへの直pushを未然に防ぐためのセーフーティネットの作り方。github上でmasterブランチへのpushを禁止すれば良いのだが、DevOpsの都合上でgithubの設定では問題があったのでhooksを使う方向で設定した。
導入グローバルに設定したいので~/.git_template/hooks配下にpre-pushファイルを作成する。.git_templateディレクトリが存在しない場合は作成する。
なお、グローバルに設定しても既存のリポジトリには反映されないので、既存リポジトリに反映したい場合は既存リポジトリの./git/hooks配下にpre-pushを...
アプリケーション
Git
shellscript
2017-06-24 16:08:40
Macにanyenvをインストールする手順です。若干ハマったところがあったのでメモ。
インストール私の環境では、/usr/local/bin/に色々置いてあるので、そこにanyenvをインストールすることにします。
cd /usr/local/bingit clone https://github.com/riywo/anyenv
Pathを通すexport PATH="/usr/local/bin/anyenv/bin:$PATH"
export ANYENV_ROOT=/usr/local/bin/anyenv
eval "$(anyenv init -)&q...
インフラストラクチャ
shellscript
anyenv
2017-07-01 16:07:30
概要letsencryptの証明書を自動更新するスクリプトの紹介です。以前から作ってはいたのですが、色々と問題があったり、サーバー環境が変わったりで完全版を残せていなかったので改めてまとめました。
環境
nginx v1.12.0
※letsencryptのインストールやshell scriptの実行方法等には触れません。
スクリプト月に一回証明書の有効期限を問わず更新し(--force-renew)、更新結果(成功または失敗)をslack通知するスクリプトです。
slackの設定値は外部ファイルで管理しています。
#!/bin/sh
# Import config
. /home/bmf...
インフラストラクチャ
cron
Let's Encrypt
shellscript
Slack
2016-10-03 16:06:40
letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 やることletsencryptの証明書を自動更新させるのを長らく忘れていたのでshellとcronで設定します。
やらないこと
letsencryptのインストール・・・pythonエラーがちょっと面倒だった記憶が。。。
letsencryptのオブションの説明・・・色々あるので。。。
環境
さくらvps
CentOS6系
letsencrypt
ShellScriptshellをかきます。shellの保存場所は適宜設けてください。
#!/bin/sh
service nginx stop
/root/lets...
インフラストラクチャ
cron
Let's Encrypt
shellscript
Slack
2016-12-03 16:06:04
letsencryptの証明書自動更新(cron)とちょっとだけSlack連携 でかいたスクリプトは、手動で実行する場合は更新成功するのですが、cronで実行すると何故か毎回失敗するという問題作でした。
そこでスクリプトを見直し、何とか正しく動作するように改良してみました。
筆者はnginx+apacheのサーバー構成です。基本的には--webrootオプションを使って証明書発行や更新を行っています。
注:letsencryptのオプションについては各自の環境に読み替えて下さい。
スクリプト#!/bin/sh
# WebHookUrl
WEBHOOKURL="****************...
インフラストラクチャ
cron
Let's Encrypt
Slack
shellscript
2017-01-30 20:59:54
概要.bashrcにgitのショートカットコマンドをつくったでgitのエイリアスコマンドをつくったのですが、中途半端だったので改良しました。
前回のエイリアスでもそこそこにgitコマンドが快適になりましたが、gitコマンドを叩く度にブランチ名をタイプしないといけない仕様は改善すべき点だと思ったので、selectを使って解決しました。
ソースgit branchの値をselectで回せばいいと思っていたのですが、ブランチ名だけではなくファイル名とか取得されてしまうので加工する必要がありました。ちょうど同じようなことを実践している記事があり、そちらを参考にさせていただきました。
作ったコマンドは...
アプリケーション
Git
shellscript
2017-01-30 20:55:51
概要cd hogehogeとかパスやらディレクトリやらタイプするのが面倒になるという怠惰っぷりを発揮してきたので、シェルスクリプトを使って少し楽できるようにしました。
ソース#!/bin/sh
# cd by selecting numbers
function cdSelect() {
dirs=`ls -a`
PS3="Select directory > "
echo 'Directory list:'
select dir in ${dirs}
do
stty e...
アプリケーション
bash
shellscript
2016-11-22 20:49:06
git add hogehoge, git commit hogehoge, git push hogehoge....
基本的なgitコマンドしか使わないのですが、毎回コマンド叩くの面倒くさい、楽したいということでエイリアスをつくってみました。
スクリプト#git branch
alias git-b='git branch'
#git checkout
function gitCheckout() {
stty erase ^H
echo -n "What is the new branch name"?...
アプリケーション
bash
Git
shellscript