Skip to content

Instantly share code, notes, and snippets.

#!/bin/bash
# $1 jsonファイルへのパス
# $2 yamlファイルへのパス
ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read))' < $1 > $2
@ohsuga
ohsuga / template.sh
Created April 12, 2018 04:30
bashスクリプトテンプレート
#!/bin/sh
set -eu
MESSAGE=
function onerror(){
error_code=$1
line_num=$2
message=$3
errmsg="Error: ${error_code} on line:${line_num} Message: ${message}"
echo -e ${errmsg}

http://c16e.com/1603281120/ で書かれていたものだが、コンテンツが削除されてしまったようなので要点だけ。

: "コメント" && {実処理} と記述することで処理のブロック化

  • #コメントへの優位点
    • -x で実行したときにコメントが表示されるので進行状況がわかりやすい
      • コメント内も変数展開されるので -x 時になにがおきているかわかりやすい
    • たいていのエディタで折りたたみに対応している
    • &&|| に変えることでブロック全体をコメント化できる
    • サブ処理をネストで表現できる
> reg.exe add HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced /v HideFileExt /t REG_DWORD /d 0 /f
$ reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -v HideFileExt -t REG_DWORD -d 0 -f
# -*- mode: ruby -*-
# vi: set ft=ruby :
ip_addr = {
:node1 => "192.168.56.1",
:ansible_host => "192.168.56.100",
}
groups = {
:all => ip_addr.keys - [:ansible_host],
:group1 => [:node1],
@ohsuga
ohsuga / create-ansible-playbook-template.sh
Last active September 9, 2016 04:48 — forked from skamithi/create-ansible-playbook-template.sh
script to create ansible playbook structure
#!/bin/bash
# Script to create ansible playbook directories
# http://docs.ansible.com/ansible/playbooks_best_practices.html#directory-layout
# define your roles here
roles=(common webtier)
directories=(tasks handlers templates files vars default meta)
# create playbook
  • 前提条件
    • プロクシ利用の場合は環境変数に設定済み
      • windows
setx HTTP_PROXY http://user:pass@proxyhost:port
setx HTTPS_PROXY http://user:pass@proxyhost:port
  • git
@ohsuga
ohsuga / watchdog.sh
Last active March 12, 2024 04:52
プロセスを監視し終了したらslackで知らせるシェルスクリプト
#!/bin/bash
# プロセスが終了したらslackで知らせる
# 実行時引数に監視対象プロセスのPIDを与える
set -eu
# slackのincoming-webhook Webhook URL
URL="https://hooks.slack.com/services/...."
PID=$1
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import os
import logging
logging.basicConfig(format='%(asctime)s [%(levelname)s]: %(message)s',
filename="%s.log"%(os.path.basename(__file__).rsplit(".", 1)[0]),
level=logging.INFO)
logger = logging.getLogger()
nd = function(a){var t = new Date(); var y=t.getYear()+1900-a;var m=t.getMonth();var d=t.getDate();return new Date(y,m,d);}