Linux

Clam AntiVirusをAmazon Linux2へ導入する

無料で使えるオープンソースのアンチウイルスソフト「ClamAV」をAWSのAmazon Linux2へインストールして動かすところまでをまとめます。 ウイルスはWindowsをターゲットとしたものが多く、限られたユーザーしか利用しないLinux環境だと入れないことが多かった…

FFmpegで実際使うと便利だが脳みそに焼き付いてくれないオプションメモ

コマンドラインで利用できる動画編集ツールFFmpegですが、十数年来の付き合いだというのに、たまにしか使わないもんだからオプションが脳みそに定着してくれませんw いざ使うとめっちゃ便利なんですよ。でもそこまでたどり着けないw 今回は年貢の納め時と…

Let's EncryptでワイルドカードなSSL証明書を入れる - Amazon Linux2編

WebサーバにSSL対応した約40件のサブドメインを追加する必要に迫られたのですが、さすがに1個ずつSSL証明書を発行するのは地獄なのでワイルドカード証明書を導入した際のメモになります。 無料のSSL証明書としておなじみのLet's Encryptでは2018年からワイル…

[Linux] 行番号付きで出力する - nl

nlコマンドを利用すると、出力結果の各行の先頭に連番を付けることができます。 $ nl -w 1 -n ln file.txt 1 Apple 2 Orange 3 Banana 要は行番号ですね。デフォルトでは連番の後ろにはタブが挿入されます。

[Linux] Terminalを閉じてもバックグラウンドの処理を実行し続ける - nohup

Linuxでシステム運用をしていると、数時間〜数日間に及ぶバッチ処理を実行することがあります。手動でプログラムを起動する場合にディスプレイの前にずっと付きっきりでは過労死まっしぐらです。またうっかりTerminalを閉じてしまうと大惨事になってしまうた…

[Linux] 一定間隔でコマンドを実行する - watch

小ネタです。 特定のコマンドを一定間隔で自動的に実行したい場合は watch コマンドを使用します。 例えば以下のコマンドでwc -l foo.txtが10秒置きに実行されます。 $ watch -n 10 wc -l foo.txt 画面がwatchコマンド専用モードに切り替わります。終了した…

[Linux] 指定した大きさのファイルを作成する - dd

小ネタです。 LinuxやmacOS上で特定サイズのファイルを作成するにはddコマンドを利用します。以下のコマンドを実行すると中身がすべてゼロの1kbyteのファイルを生成できます。 $ dd bs=1024 count=1 if=/dev/zero of=file1 $ ls -l total 8 -rw-r--r-- 1 kat…

[Linux] SSHのログイン時にIPアドレス制限を行う

ここ数日、SSHへのアタックが急激に増加した関係で特定のIPアドレスからだけログインできるよう対応しました。結論から言うと以下の設定を行うだけです。 特定のIPアドレスのみログインできる 特定のIPアドレスをブロックする hosts.allow|denyの書式 注意点…

Linux入門「はじめてのコマンドライン」- Part.5

※この記事は専門学校の講義用に作成されたものです 今回はLinuxを利用する上で避けては通れない「パーミション」について取り上げます。 今後Linux上でプログラミングを行ったり、サーバ運用をする場合には必ずこのパーミションを意識して行う必要が出てくる…

Linux入門「はじめてのコマンドライン」- Part.4

※この記事は専門学校の講義用に作成されたものです WindowsやmacOSと同様にLinuxでも複数のユーザーで利用することができます。今回は新しくユーザーを作成し切り替えるところまでを学習します。

Linux入門「はじめてのコマンドライン」- Part.3

※この記事は専門学校の講義用に作成されたものです 今回はコマンドラインの醍醐味である「リダイレクト」と「パイプ」について取り上げます。これをマスターすると上級者になった気分が味わえますw

Linux入門「はじめてのコマンドライン」- Part.2

※この記事は専門学校の講義用に作成されたものです 前回はLinuxでの基本的なコマンドラインの操作方法、ファイルやディレクトリの扱い方について練習しました。今回はディレクトリ(フォルダ)の「移動方法」について学習します。

Linux入門「はじめてのコマンドライン」- Part.1

※この記事は専門学校の講義用に作成されたものです LinuxにはWindowsやmacOSと同じ様にGUIを利用した操作ができる「XWindow」という仕組みもありますが、遠隔地にあるサーバを操作する場合には「コマンド」を入力して実行する方法が一般的です。 今回は初め…

SSHで接続できない「Can't assign requested address」エラーが発生した場合

小ネタです。 なぜか特定のサーバにSSHで接続できない現象が発生しました。他のサーバにはいつも通りに接続でき、DNSやサーバ自体の設定も特に変更していません。 $ ssh ec2-user@example.com -p 10022 ssh: connect to host example.com port 10022: Can't …

[Linux] yumで一度利用したパッケージをキャッシュする

小ネタです。 AnsibleのPlaybookを作成していたのですが、何度もyumで同じパッケージのインストールを繰り返していると、処理に時間はかかるしネットワーク利用量(利用料)もバカになりません。 そこで一度でも利用したパッケージはローカルにキャッシュする…

[Linux] 最低限覚えておきたいTerminalのショートカット一覧

LinuxやmacOSのTerminalのショートカットは様々な物が用意されていますが、一度に全部は覚えられませんw 特におっさんになってくると脳みそが受け付けてくれないのでここでは必要最小限の物をリストアップします。一度覚えてしまえばbashやzshであれば同じ…

[Linux] bashで超簡易的な改ざん検知を行いSlackに投げる

小ネタが続いてますが、今回も小ネタですw Webサイトの改ざん検知を手軽にパパッと行いたい場合、単純にcurlなどで取得したファイルをdiffで比較するだけでも実現できます。 というわけで以下がコード。ここでは最終的にSlackに通知しています。 #!/bin/bas…

[Linux] Bashでファイル一覧を順番に処理したい

Bashで特定のファイルを順番に処理したい場合、配列をforでぐるぐる回してやるのがお手軽です。ここでは配列listで定義した3つのファイルを順番に指定ディレクトリへコピーしています。 #!/bin/bash # 対象のファイル一覧 list=( /tmp/foo.txt /tmp/bar.txt …

[Linux] Bashでlsやfindの実行結果を1件ずつ処理したい

Bashでlsなどコマンドの実行結果を順番に処理したい場合は以下のようにforでぐるぐる回してやるだけです。 #!/bin/bash for file in `ls /tmp/*.json`; do echo "copy ${file} to /home/foo" cp $file /home/foo done ここでは「/tmp」ディレクトリ配下にあ…

[Linux] Bashで一定件数以上のファイルを削除する

日次バッチなどを作っていると、例えばバックアップファイルは最新30件だけ保存し、それ以上古いファイルは削除したいといった気持ちになりますよね。そんな時に利用するのが次のワンライナー。 $ cd backup/ $ rm -f `ls -t . | tail -n+31` これだと30日前…

[Linux] 秘密鍵から公開鍵を作成する

例えばSSHでログインするために秘密鍵だけ渡された場合、公開鍵は自分で作成することができます。 $ ssh-keygen -y -f ~/.ssh/id_foo > ~/.ssh/id_foo.pub

[MySQL] rootのパスワードを忘れたので再設定する

AmazonLinux上にインストールしたMySQL5.7のrootのパスワードを忘れてしまったので再設定を行います。 基本的に公式ドキュメントの内容に沿った形で実施していきますが、日本語のドキュメントのバージョンがちょっと古いので5.7に合わせてあります。

[Linux] ファイルの行数や文字数をカウントする - wc

ファイルの文字数や行数を簡単にカウントできるのがwcコマンドです。 恐らく「Word Count」の略称で、ワールドカップでもトイレでもありませんw 以下のように調査したいファイルのパスを渡すと、ファイルの行数、単語数、バイト数を表示してくれます。 $ wc…

[Linux] ディレクトリをツリー状に表示する - tree

今回は以下のようにディレクトリやファイルをツリー状に表示してくれるtreeコマンドです。 $ tree . . ├── LICENSE.txt ├── README.md ├── bin │ └── gpwd.js ├── coverage │ ├── clover.xml │ ├── coverage-final.json │ └── lcov.info ├── index.js ├── pa…

[Linux] バイナリファイルを表示する - od

今回はコマンドラインでバイナリファイルを閲覧する方法です。サンプルとしてこのブログのアイコン画像を利用しています。

はじめてのAnsible #1 入門編

Ansible便利ですよね。 一度設定ファイルを作ってしまえばあとはコマンド一発で同様のサーバ環境が作れます。対象サーバも一度に何台でもまとめて設定できるのも便利。最近では人間が手作業で実行する日々の運用でも活躍するシーンが出てきました。サーバの…

[Linux] yumで特定パッケージのバージョンアップを阻止する

ローカルでの検証用にVirtualBox上でLinuxを動かしているのですが、迂闊にkernelのバージョンを上げてしまうとGustOS用のドライバ(Guest Addition)の再インストールが高確率で発生します。それは良いのですが、問題は再インストールが一発で上手くいった試し…

[Linux] パスワードを変更する - passwd

Linux上のユーザーのパスワードを変更するにはpasswdコマンドを利用します。 実行例 自分のパスワードを変更する 自分のパスワードを変更する場合、管理者権限(root権限)は不要です。 $ passwd ユーザー katsube のパスワードを変更。 katsube 用にパスワー…

[Linux] ユーザーを新規作成する - useradd

Linux上にユーザーアカウントを新規に作成するコマンドはuseraddです。 $ sudo useradd -m (ユーザー名) 細かい設定の変更は作成後にいつでも行うことができるので、オプションを指定し忘れた場合は各種設定を行うコマンドを追加で実行すれば大丈夫です。作…

[Linux] ユーザーを削除する - userdel

Linuxで作成済みのユーザーを削除するにはuserdelコマンドを実行するだけです。 $ sudo userdel -r (ユーザー名) なお特に確認は求められず、Enterキーを押した瞬間削除されますので実行には十分気をつけてください。