Posts

MacOS High Sierraにアプリケーションを自動インストールする

Mon Dec 25, 2017 in mac using tags macos

概要 MacOS HighSierraにアプリケーションをインストールします。 1つ1つをWebサイトからダウンロードしてインストールするのは大変なので、なるべく自動化します。 インストールするアプリケーションは私がよく使用するものです(ありていに言えば私の備忘録です)。 homebrewでアプリケーションを自動インストールする STEP1.準備(homebrewのインストール) 以下のコマンドを実行してhomebrewをインストールします。 $ xcode-select --install $ sudo xcodebuild -license $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ brew tap caskroom/cask $ brew tap homebrew/bundle $ brew install mas STEP2.Brewfile作成 以下のコマンドを実行してBrewfileを作成します。 $ brew bundle dump Brewfileにインストールしたいアプリケーションを追記します。 homebrewでアプリケーションがインストールできるかは以下のコマンドで検索できます。 $ brew search "検索文字列(アプリケーション名)" $ mas search "検索文字列(アプリケーション名)" 私のBrewfileは以下の感じです。 tap "caskroom/cask" tap "homebrew/core" tap "homebrew/bundle" brew "mas" brew "git" brew "hub" brew "go" brew "hugo" cask "osxfuse" brew "encfs" brew "lv" brew "nkf" brew "wget" brew "ansible" brew "emacs", args: ["with-cocoa"] brew "macvim", args: ["HEAD", "with-lua"] brew "markdown" brew "fish" cask "iterm2" cask "keepassx" cask "sublime-text" cask "atom" cask "google-chrome" cask "firefox" cask "flash-player" cask "flash-npapi" cask "flash-ppapi" cask "mamp" cask "sequel-pro" cask "virtualBox" cask "virtualBox-extension-pack" cask "vagrant" cask "xquartz" cask "dropbox" cask "wireshark" cask "krita" cask "java" cask "java-jdk-javadoc" cask "intellij-idea-ce" cask "alfred" cask "github" cask "hosts" cask "omnifocus" cask "atok" cask "xmind-zen" mas "Xcode", id: 497799835 mas "Slack", id: 803453959 mas "OneDrive", id: 823766827 mas "Marked 2", id: 890031187 mas "Twitter", id: 409789998 mas "The Unarchiver", id: 425424353 STEP3.

LinuxでUTF-8のBOMを削除する

Wed May 17, 2017 in server using tags vim , utf-8

Linux上でUTF-8のファイルに含まれるBOM(Byte Order Mark)を削除する方法です。Webで検索するとたくさん情報が出てきますが、今回はvimを使った方法を残しておきます。 きっかけとしては、Windowsで作成したシェルスクリプト(UTF-8)をLinuxで実行した際に1行目でエラーが出力されたことです。なぜエラーが出るのか調べてみるとBOMが原因であることがわかりました。 Windowsのnotepadで保存するとBOM付きで保存されるようです。 BOMの確認 ファイルをcatやemacsで表示しても通常はBOMを見ることはできません。これはプログラムがBOM付き、BOMなしに関わらずうまく解釈して表示してくれるからです。ですが、lessやmoreではBOMをそのまま表示してくれますので、BOM有無の判断に使用できます。<U+FEFF>がBOMです。 $ less bom.txt <U+FEFF>#!/bin/sh echo hoge BOMの削除 通常vimでファイルを開くとBOM付き、BOMなしを意識せず開いてくれます。ここで「-b(バイナリモード)」オプションをつけてvimを起動するとBOMを表示することができます。 $ vim -b bom.txt <feff\>#!/bin/sh echo hoge あとはBOM(↑でいうところの<feff>)を削除して保存すれば、BOMなしファイルができます。 以上

OCJP, Silver SE 8を取得しました

Sat May 6, 2017 in program using tags java , certificate

2017年7月にJava 9のリリースが予定されている中で、「Oracle Certified Java Programmer, Silver SE 8 (1Z0-808)」を取得しました。 資格取得までに勉強したことをメモしておきます。 Java経験 私のJava経験は以下ととおりです。 2010年にSun認定JavaプログラマSE6(SJC-P)を取得 Javaはたまに趣味で書く程度(仕事ではプログラミングはしていません) 勉強方法 試験まで以下の参考書を使用して勉強しました。 オラクル認定資格教科書 Javaプログラマ Silver SE 8 SJC-Pを取得していたこともあり、基本的な文法やオブジェクト指向については復習程度の学習で問題ありませんでした。 参考書の1章から8章までを一通り読んでから模擬試験問題にチャレンジしました。 Java SE 8で新しく勉強した部分で不安がありましたが、正解率90%ぐらいとれたため試験に申し込みました。 新しく勉強した内容 過去に取得したSJC-PからSilver SE 8を取得するにあたり新しく勉強した内容は以下のとおりです。 2進数表記 0bを先頭につけることで2進数を表現できるようになりました。 ex) 0b1010 // 10進数で10 0b1111 // 10進数で15 数値リテラルのアンダーバー 数値リテラルにアンダーバーを使用してカンマのように表現できるようになりました。 ex) 1_234 5_6 インタフェースのdefaultメソッドとstaticメソッド インタフェースにメソッドの実装を記載できるようになりました。 結果、多重継承が実現可能となりました。 インタフェースと抽象クラスで同じようなことができるようになったため、使い分けが難しそうです。 ex) interface MyInterface { void method1(); default void method2() { System.out.println("method2"); } static void method3() { System.out.println("method3"); } } ラムダ式 ラムダ式という構文が追加されました。ラムダ式を使用するとこれまで匿名クラスを使用していた場面での実装を、よりシンプルにできます。

CentOS 7.3にLet's Encryptの証明書を導入する

Wed May 3, 2017 in server using tags centos , Let's Encrypt

前提 OS CentOS Linux release 7.3.1611 (Core) Web Server Apache 2.4.6 firewalld enabled SELinux disabled firewalldでhttpsを有効化 インターネットからhttpsアクセスを許可する。 $ sudo firewall-cmd --permanent --zone=public --add-service=https success $ sudo firewall-cmd --reload success $ sudo firewall-cmd --zone=public --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: http https ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules: EPELリポジトリのインストール EPELリポジトリをインストールする。

Raspberry Pi 2のイメージバックアップを行う

Sun Jan 15, 2017 in server using tags raspberrypi , home-network , homenas1

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。 今回はhomenas1のバックアップを行います。 gitのインストール $ sudo -E apt-get install git パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: git-man liberror-perl 提案パッケージ: gettext-base git-daemon-run git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn 以下のパッケージが新たにインストールされます: git git-man liberror-perl アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 1 個。 4,015 kB のアーカイブを取得する必要があります。 この操作後に追加で 20.4 MB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main liberror-perl all 0.17-1.1 [22.4 kB] 取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main git-man all 1:2.

Raspberry Pi 2でファイルバックアップを行う

Thu Jan 12, 2017 in server using tags raspberrypi , home-network , homenas1

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。 今回はhomenas1にrsnapshotを導入してファイルバックアップを行う設定を行います。 なおバックアップ元は/mnt/nas/、バックアップ先は/mnt/backup/を想定しています。 $ df -h /dev/sdc1 917G 72M 871G 1% /mnt/backup /dev/md0 394G 71M 374G 1% /mnt/nas $ rsnapshotのインストール $ sudo -E apt-get install rsnapshot パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: liblchown-perl rsync 以下のパッケージが新たにインストールされます: liblchown-perl rsnapshot rsync アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 1 個。 507 kB のアーカイブを取得する必要があります。 この操作後に追加で 1,133 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main liblchown-perl armhf 1.01-2+b1 [8,828 B] 取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main rsync armhf 3.

Raspberry Pi 2でCactiを導入する(サーバの登録)

Mon Jan 9, 2017 in server using tags raspberrypi , home-network , homenas1 , homemon1 , homemon2 , homepxy1 , homepot1

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。 前回はCactiを導入しました。 今回はCactiにhomenas1、homemon1、homemon2、homepxy1、homepot1を登録していきます。SNMPv3を使用してSNMPの値を取得します。 snmpdのインストール 追加するデバイス(Server)にsnmpdをインストールする。 $ sudo -E apt-get install snmpd snmp パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libperl5.20 libsensors4 libsnmp-base libsnmp30 提案パッケージ: lm-sensors snmp-mibs-downloader snmptrapd 以下のパッケージが新たにインストールされます: libperl5.20 libsensors4 libsnmp-base libsnmp30 snmp snmpd アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 1 個。 3,836 kB のアーカイブを取得する必要があります。 この操作後に追加で 7,088 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libperl5.20 armhf 5.20.2-3+deb8u6 [1,354 B] 取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libsensors4 armhf 1:3.3.5-2 [48.9 kB] 取得:3 http://mirrordirector.

Raspberry Pi 2でCactiを導入する

Mon Jan 9, 2017 in server using tags raspberrypi , home-network , homemon1 , homemon2

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。 今回はhomemon1、homemon2にCactiを導入します。 Cactiのインストール Cactiをインストールします。 途中でApache2の設定やMySQLのパスワードについて聞かれるので適宜回答します。 $ sudo -E apt-get install cacti cacti-spine パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: dbconfig-common fontconfig javascript-common libcairo2 libdatrie1 libdbi1 libgraphite2-3 libharfbuzz0b libjs-jquery libjs-jquery-cookie libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libphp-adodb libpixman-1-0 librrd4 libthai-data libthai0 libxcb-render0 libxcb-shm0 libxrender1 php5-snmp rrdtool snmp 提案パッケージ: moreutils snmp-mibs-downloader php5-adodb librrds-perl 以下のパッケージが新たにインストールされます: cacti cacti-spine dbconfig-common fontconfig javascript-common libcairo2 libdatrie1 libdbi1 libgraphite2-3 libharfbuzz0b libjs-jquery libjs-jquery-cookie libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libphp-adodb libpixman-1-0 librrd4 libthai-data libthai0 libxcb-render0 libxcb-shm0 libxrender1 php5-snmp rrdtool snmp アップグレード: 0 個、新規インストール: 26 個、削除: 0 個、保留: 1 個。 6,777 kB のアーカイブを取得する必要があります。 この操作後に追加で 16.

Raspberry Pi 2でZabbixサーバを構築する(Agent導入)

Mon Jan 9, 2017 in server using tags raspberrypi , home-network , homenas1 , homemon1 , homemon2 , homepxy1 , homepot1

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。 前回はZabbix Serverを導入しました。 今回はhomenas1、homemon1、homemon2、homepxy1、homepot1にZabbix Agentを導入していきます。 Zabbix Agentのインストール Zabbix Agentをインストールします。 $ sudo -E apt-get install zabbix-agent パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libcurl3-gnutls libpci3 pciutils 以下のパッケージが新たにインストールされます: libcurl3-gnutls libpci3 pciutils zabbix-agent アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 1 個。 819 kB のアーカイブを取得する必要があります。 この操作後に追加で 2,344 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libpci3 armhf 1:3.2.1-3 [48.2 kB] 取得:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main libcurl3-gnutls armhf 7.38.0-4+deb8u5 [225 kB] 取得:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main pciutils armhf 1:3.

Raspberry Pi 2でZabbixサーバを構築する

Sun Jan 8, 2017 in server using tags raspberrypi , home-network , homemon1 , homemon2

FortiGate 60DとRaspberry Piを使用して家庭内インターネット接続環境を構築します。 最終的には以下のような構成を想定しています。 前回に引き続きhomemon1、homemon2を構築していきます。 本環境の監視を行うためにZabbixを導入します。 Zabbix Serverのインストール $ sudo -E apt-get install zabbix-server-mysql zabbix-frontend-php php5-mysql task-japanese パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: apache2 apache2-bin apache2-data apache2-utils bdf2psf fbterm fontconfig-config fonts-dejavu-core fping libaio1 libapache2-mod-php5 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libcurl3-gnutls libdbd-mysql-perl libdbi-perl libfontconfig1 libfontenc1 libgd3 libhtml-template-perl libiksemel3 libjbig0 libltdl7 liblua5.1-0 libmysqlclient18 libodbc1 libonig2 libopenipmi0 libpci3 libperl4-corelibs-perl libperl5.20 libqdbm14 libsensors4 libsnmp-base libsnmp30 libterm-readkey-perl libtiff5 libvpx1 libxfont1 libxpm4 lsof lv manpages-ja manpages-ja-dev mysql-client-5.5 mysql-common mysql-server mysql-server-5.