動かざることバグの如し

猫ゆえに。。。

シェルスクリプトで引数オプションをパースするテンプレート作った

なんだかんだ言ってシェルスクリプトはどの環境でも動くから自作スクリプトを走らせるにはbashが一番だったりする。 しかしlinux系コマンドでよくある

./exe.sh -i hoge.txt -o out.txt -a

みたいなオプションを自分で1から実装するのはつらい。そこでgetoptsコマンドを使ったオプションを読み込む

#!/bin/sh

function usage {

  cat <<EOM
Usage: $(basename "$0") [OPTION]...

  -a VALUE    argument description
  -b VALUE    argument description
  -c          switch description
  -d          switch description
  -h          display help
EOM

  exit 2
}

# init switch flags
c=0
d=0

while getopts ":a:b:cdh" optKey; do
  case "$optKey" in
    a)
      a=$OPTARG
      ;;
    b)
      b=$OPTARG
      ;;
    c)
      c=1
      ;;
    d)
      d=1
      ;;
    h|*)
      usage
      ;;
  esac
done

echo a=$a
echo b=$b
echo c=$c
echo d=$d

あとでかくn

ethtoolでネットワークのリンク速度を設定する

Linuxで1GのNICから10GのNICへファイルのコピーをしてたが、めっちゃ遅い。どうもネットワークデバイスが意図しないリンク速度として認識してしまってるらしい。いわゆるオートネゴシエーションが悪さしてるっぽかったので、無効化して手動でリンク速度を設定したのでメモ

ここではethtoolというコマンドを使う

設定確認

ethtool -s eno1

オートネゴシエーションを無効化

ethtool -s eno1 autoneg off

ethtool -s eno1 autoneg onでもとに戻る

全二重として設定

ethtool -s eno1 duplex full

リンク速度の設定

ここでは1Gに設定している。

ethtool -s eno1 speed 100

設定可能な速度は

cat /sys/class/net/<interface>/speed

でわかる。存在しない速度を指定してしまうとネットワークに接続できなくなってしまうので注意(体験談

実は一括でも設定できる

ethtool -s eno1 speed 100 duplex full autoneg off

pingで見てる感じだと、1回の設定に約4秒程度ネットワークの接続が切れているようだった。ただ一括設定のときと個別設定で途切れてる時間は同じだったので一括で設定したほうがダウンタウンは最小限に抑えられる

参考URL

Macってコマンドラインからソフトウェア更新できたんだな

知らなかった もっと早く言えやボケ

コマンドラインを使ってソフトウェアアップデートをリモートインストールする方法 - Apple サポート

更新の確認

softwareupdate -l --include-config-data
~ $ softwareupdate -l --include-config-data
Software Update Tool

Finding available software
Software Update found the following new or updated software:
   * Command Line Tools (macOS Sierra version 10.12) for Xcode-9.2
    Command Line Tools (macOS Sierra version 10.12) for Xcode (9.2), 182564K [recommended]
   * ChineseWordlistUpdate-5.40
    Chinese Word List Update (5.40), 387K [recommended]
   * macOSInstallerNotification_GM-2.0
    macOS Installer Notification (2.0), 2571K [recommended]
   * Security Update 2018-003-10.12.6
    セキュリティアップデート 2018-003 (10.12.6), 758125K [recommended] [restart]
   * XProtectPlistConfigData-2099
    XProtectPlistConfigData (2099), 35K [recommended]
   * Security Update 2018-004-10.12.6
    セキュリティアップデート 2018-004 (10.12.6), 767265K [recommended] [restart]
   * Safari11.1.2Sierra-11.1.2
    Safari (11.1.2), 77963K [recommended]
   * GatekeeperConfigData-140
    Gatekeeper Configuration Data (140), 3451K [recommended]
   * MRTConfigData-1.35
    MRTConfigData (1.35), 2739K [recommended]
   * GatekeeperConfigData-151
    Gatekeeper Configuration Data (151), 3415K [recommended]
   * iTunesX-12.8
    iTunes (12.8), 263192K [recommended]

すべての更新を実行

softwareupdate --install --all
~ $ softwareupdate --install --all
Software Update Tool

Finding available software

Downloading セキュリティアップデート 2018-004
Downloading Command Line Tools (macOS Sierra version 10.12) for Xcode
Downloading セキュリティアップデート 2018-003
Downloading Safari
Downloaded Command Line Tools (macOS Sierra version 10.12) for Xcode
Downloaded Safari
Downloading iTunes
Downloaded iTunes
Downloaded セキュリティアップデート 2018-003
Downloaded セキュリティアップデート 2018-004
Installing セキュリティアップデート 2018-004, Safari, iTunes, Command Line Tools (macOS Sierra version 10.12) for Xcode, セキュリティアップデート 2018-003

Done with セキュリティアップデート 2018-004
Done with Safari
Done with iTunes
Done with Command Line Tools (macOS Sierra version 10.12) for Xcode
Done with セキュリティアップデート 2018-003
Done.

You have installed one or more updates that requires that you restart your
computer.  Please restart immediately.

実行後に↑のように You have installed one or more updates that requires that you restart your computer. Please restart immediately.って言われたら再起動が必要

MacからGarageBandを完全削除して容量を確保する

環境

音楽性の違いにより削除

突然ですが、作曲する?するならブラウザバックで。しないならGarageBandまるごと削除しよう

GarageBandApple謹製の作曲ソフト。プリインストールされれて気づきにくいが、結構容量を食っている。

削除手順

  • アプリケーション一覧からGarageBandを削除

が、これだけでは実は不十分で

ターミナル上から以下を実行 直接削除せずにmvしているのは念の為

/Library/Application Support $ sudo mv /Library/Application\ Support/GarageBand/ ~/
/Library/Application Support $ sudo mv /Library/Application\ Support/Logic ~/
/Library/Application Support $ sudo mv /Library/Audio/Apple\ Loops ~/

open ~/とかすると、Finder上から移動したディレクトリを確認できる。あとはゴミ箱に葬るなり、rmするなりお好きに

ちなみに自分のMacvookの場合はこれで3GB空いた。やったぜ

UbuntuにClickHouseのインストールするまで

環境

インストール

基本的には公式ドキュメントどおりに進めていけばおk

/etc/apt/sources.list.d/clickhouse.listに以下を追加

deb http://repo.yandex.ru/clickhouse/deb/stable/ main/

で、インストール

apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
apt update
apt install clickhouse-client clickhouse-server

開始

service clickhouse-server start

設定

設定ファイルは /etc/clickhouse-server/config.xml なんで平成も終わろうとしてるのにXML形式なんだ