かべぎわブログ

技術的なことについてかけたらいいな…

Linux

CentOS7でLAMP環境を構築してみる

CentOS7にLAMP環境を構築してみようと思います。 そもそもLAMP環境とは? LAMP環境を構築する L - Linuxの構築 A - Apacheの構築 M - MySQLの構築 P - PHPの構築 LAMP環境の動作確認 MySQLにデータを格納する phpのスクリプトをつくる ブラウザで実際に確認…

AnsibleでSystemdに新規サービスを追加する

概要 AnsibleをつかってSystemdに新規サービスを追加して、それを有効化して起動してみたいと思います。 playbook例 ちょっとした解説 以下のようなことをやっている。 wawawa.serviceというunitファイルをターゲットにコピーする。 daemon reloadする wawaw…

tailコマンドでn行目以降を取得する

概要 tailコマンドを利用してn行目以降を取得してみたいと思います。 コマンド例 たとえばwawawa.txtが以下のようだとする。 $ cat wawawa.txt AAA BBB CCC DDD EEE 以下コマンドを実行するとwawawa.txtの3行目以降を取得することができる。 $ tail -n +3 wa…

rc.localが実行できないときは実行権限を与えてあげる

概要 Linuxの起動時にrc.localに記載したコマンドが実行されていなかった。 そんなときの対処法です!!! 対処法 /etc/rc.d/rc.localに実行権限を与えてあげる。 デフォルトだと以下のように実行権限がない。 このままだとrc.localになにを書いてあげても実…

ソートできないファイル同士を結合するシェルスクリプト

概要 なぜかはわからないけれどソートができないテキストファイル2つがあって、なぜかはわからないけれどそれを共通のキーをもとに結合したいときがあって、前述の通りなぜかはわからないけれどソートができないのでjoinコマンドが使えないのでシェルスクリ…

mktempをつかってシェルスクリプトでユニークなtempファイルをつくる

概要 シェルスクリプトでtempファイルを作成するときに以下のようにすることが多いかと思います。 echo 'wawawa' > ./hoge.txt ただこれだとカレントディレクトリにすでにhoge.txtが存在した場合に上書きしてしまって、人の大事なtempファイルを消してしまっ…

AWSCLIの出力にjoinで文字列をくっつけて出力する

概要 AWSCLIの出力結果にjoin()をつかって任意の文字列をくっつけて出力してみたいと思います。 実際にやってみる インスタンスIDを出力してみると通常はこんな感じですが $ aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --…

opensslコマンドでcsrファイルを対話形式ではなく一撃で作成する

概要 opensslコマンドでcsrファイルを作成するときに、通常だと以下のように対話形式でひとつずつ項目を埋めていく必要があります。 Country Name (2 letter code) [GB]: State or Province Name (full name) [Berkshire]: Locality Name (eg, city) [Newbur…

改めてLinuxの主要ディレクトリについてまとめてみる

いろいろとわすれがちというかなんというかなのでLinuxのディレクトリ構成についてまとめてみた。 ディストリビューションによってちがうとはおもうんだけれどだいたい以下のような感じなんじゃないか。 Linuxの主要ディレクトリ /bin /sbin /boot /dev /etc…

rsyncでは最後のスラッシュのありなしに注意すること

概要 rsyncコマンドでちょっとはまったというか忘れがちというかやってしまいがちなのでメモ。 ポイント!!!! rsyncコマンドでは、コピー元のPATHの最後の/をつけるか否かでその挙動が変わります!!! たとえば以下のとおり。 コピー元の最後に/を付ける…

シェルスクリプトでFizzBuzzをつくる

概要 なんだかんだで一度もやったことがなかったのでシェルスクリプトでFizz Buzzをつくってみました。 スクリプト おわりに ワイン飲みながら所要時間6分くらい なかなかなのでは? [改訂第3版]シェルスクリプト基本リファレンス ──#!/bin/shで、ここまでで…

rsyncでサーバ間の同期を鍵認証で行う

概要 rsyncコマンドをつかって鍵認証でログインする2台のサーバの同期をしてみます。 コマンド 鍵認証のサーバ間でrsyncを利用する際は-eオプションのあとに、sshコマンドを記述します。 以下はリモートからローカルに同期をとるときのコマンド $ rsync -av …

haltとかrebootとかはsystemctlのシンボリックリンクだった

概要 haltとかrebootとかpoweroffとかそういう起動/停止/再起動系のコマンドはsystemctlのシンボリックリンクだった。 こんなかんじ $ ls -l `which halt` lrwxrwxrwx 1 root root 16 1月 16 18:45 /usr/sbin/halt -> ../bin/systemctl $ ls -l `which reboo…

systemctlでよくつかうオプションまとめ

概要 なんか意外と忘れがちなsystemctlコマンドのよくつかいそうなオプションをまとめてみる。 概要 サービスの起動 サービスの停止 サービスの再起動 サービスのリロード 自動起動の有効化 自動起動の無効化 自動起動が有効か確認する ユニットがアクティブ…

systemdのユニットの種類についてまとめる

概要 systemdのユニットの種類について勉強し直したのでまとめメモ。 そもそもsystemdとは? Linuxの起動システムで、UpstartやSysVinitの代替として開発された。 2014年にRHEL7/CentOS7に採用された。 2015年にDebian/Ubuntuに採用された。 systemdはユニッ…

$RANDOMの精度があまりよくないという話をきいたのでしらべてみる

概要 $RANDOMは乱数としてはそんなに精度が高くないみたいなはなしを聞いたような聞かなかったようなきがしたので雑に調べてみる。 調べ方 echo ${RANDOM}を無限ループでぶん回す 1億行くらいになったら止める ばらつきを集計する 1. echo ${RANDOM}を無限ル…

シェルスクリプト上で乱数を扱う方法まとめ3選

概要 シェルスクリプトを書いていて、乱数が使いたいなーと思ったときにつかえるコマンドをご紹介します。 ${RANDOM}をつかう bashのシェル変数である${RANDOM}を利用します。 この変数は参照されるたびに0~32767の値を返します。 手っ取り早いですが、あま…

cd - で一つ前にいたディレクトリに戻る

概要 cd -コマンドを利用することで一つ前に自分が居たディレクトリに戻ることができます。 コマンド例 $ pwd /Users/kabegiwa/Downloads $ cd $ pwd /Users/kabegiwa $ cd - /Users/kabegiwa/Downloads おわりに これでまちがってcd実行してホームディレク…

pipをプロキシ環境で利用する

概要 pipコマンドをプロキシ環境で利用する方法についてご紹介します。 コマンド例 こんなかんじでオプションをつけてあげることでプロキシをとおした環境でもpipを利用することができます。 pip install awscli --proxy http://example.proxy:8080 [試して…

commコマンドで2つのテキストファイルの比較結果を出力する

あんまり知られてないような気がするけれど結構便利なcommコマンドについてまとめてみます。 commコマンドとは? commコマンドとは、2つのソートされたテキストファイルを比較できるコマンドです。 ファイルを比較して、片方のファイルにしか存在しない行や、…

Linux構築時にいれておくと便利なhistoryの設定

概要 Linux構築時にいれておくとのちのちすごく便利になるhistoryの設定をご紹介します! ご紹介するやつ 概要 ご紹介するやつ タイムスタンプをつける コマンド実行時に出力される行数を設定する .bash_historyに記録する行数を設定する 記録しないコマンド…

etckeeperをつかって/etcを管理してみる

etckeeperという/etc配下のファイルを管理するツールを使ってみたいと思います。 etckeeperとは? こんなかんじのツールです。 /etc配下を自動で管理してくれる Gitで管理できる yumコマンドが実行されると自動でコミットしてくれる 日付が変わると(cron.dai…

Amazon Linux2 に自作サービスを追加する

今回はAmazonLinux2のSystemdに自作サービスを追加してみようと思います。 手順 サービスとして追加するスクリプトの準備 ユニットファイルを作成する 各項目のちょっとした解説 サービスとして認識されたかどうか確認する サービスを有効化(enable)する サ…

Amazon Linux2 にepelリポジトリを追加する

概要 AmazonLinux2で利用できるamzn2-coreリポジトリではインストールできないものがでてきたのでリポジトリを追加する方法をメモ。 RHEL7用のリポジトリを追加しているだけ リポジトリを追加する手順 概要 リポジトリを追加する手順 すでに追加されているyu…

Amazon Linux2からGitHubのリポジトリへPushする

Amazon Linux2からGitHub上のリポジトリへPushするやりかたです。 環境 Pushするまでの手順 事前準備 Gitをインストールする ローカルリポジトリを作成する git configでユーザ名とメールアドレスを設定する GitHubにssh接続するための鍵を作成する GitHubに…

diffで差分がないところだけ出力する

今回はdiffで差分がないところだけ出力してみます。 前提 比較するファイルは以下のようなものを用意しています。 $ cat foo.txt AAAAA BBBBB CCCCC $ cat bar.txt CCCCC DDDDD EEEEE 実行コマンド 以下のコマンドでdiffで差分のない部分だけを出力すること…

JMeterを複数サーバで実行する

今回はjmeterを複数のサーバで同時に実行する方法をご紹介します。 JMeterとは? JMeterを複数サーバで実行する JMeter試験構成 JMeter-Clientの設定 JMeter-Serverの設定 実際に動かしてみる JMeter-Serverのサービスを起動 JMeter-Clientのサービスを起動 …

vimで一気に複数行をコメントアウトしたり一括でインデントする方法

みなさん。vimつかってますか? わたしは仕事でシェルスクリプトを書くことがおおいので毎日のように使っています。 さて、今回はそんなvimで複数行をコメントアウトしたり一括でインデントをする方法を紹介します。 複数行を一気にコメントアウトする Ctrl …