Linux
無料で使えるオープンソースのアンチウイルスソフト「ClamAV」をAWSのAmazon Linux2へインストールして動かすところまでをまとめます。 ウイルスはWindowsをターゲットとしたものが多く、限られたユーザーしか利用しないLinux環境だと入れないことが多かった…
コマンドラインで利用できる動画編集ツールFFmpegですが、十数年来の付き合いだというのに、たまにしか使わないもんだからオプションが脳みそに定着してくれませんw いざ使うとめっちゃ便利なんですよ。でもそこまでたどり着けないw 今回は年貢の納め時と…
WebサーバにSSL対応した約40件のサブドメインを追加する必要に迫られたのですが、さすがに1個ずつSSL証明書を発行するのは地獄なのでワイルドカード証明書を導入した際のメモになります。 無料のSSL証明書としておなじみのLet's Encryptでは2018年からワイル…
nlコマンドを利用すると、出力結果の各行の先頭に連番を付けることができます。 $ nl -w 1 -n ln file.txt 1 Apple 2 Orange 3 Banana 要は行番号ですね。デフォルトでは連番の後ろにはタブが挿入されます。
Linuxでシステム運用をしていると、数時間〜数日間に及ぶバッチ処理を実行することがあります。手動でプログラムを起動する場合にディスプレイの前にずっと付きっきりでは過労死まっしぐらです。またうっかりTerminalを閉じてしまうと大惨事になってしまうた…
小ネタです。 特定のコマンドを一定間隔で自動的に実行したい場合は watch コマンドを使用します。 例えば以下のコマンドでwc -l foo.txtが10秒置きに実行されます。 $ watch -n 10 wc -l foo.txt 画面がwatchコマンド専用モードに切り替わります。終了した…
小ネタです。 LinuxやmacOS上で特定サイズのファイルを作成するにはddコマンドを利用します。以下のコマンドを実行すると中身がすべてゼロの1kbyteのファイルを生成できます。 $ dd bs=1024 count=1 if=/dev/zero of=file1 $ ls -l total 8 -rw-r--r-- 1 kat…
ここ数日、SSHへのアタックが急激に増加した関係で特定のIPアドレスからだけログインできるよう対応しました。結論から言うと以下の設定を行うだけです。 特定のIPアドレスのみログインできる 特定のIPアドレスをブロックする hosts.allow|denyの書式 注意点…
※この記事は専門学校の講義用に作成されたものです 今回はLinuxを利用する上で避けては通れない「パーミション」について取り上げます。 今後Linux上でプログラミングを行ったり、サーバ運用をする場合には必ずこのパーミションを意識して行う必要が出てくる…
※この記事は専門学校の講義用に作成されたものです WindowsやmacOSと同様にLinuxでも複数のユーザーで利用することができます。今回は新しくユーザーを作成し切り替えるところまでを学習します。
※この記事は専門学校の講義用に作成されたものです 今回はコマンドラインの醍醐味である「リダイレクト」と「パイプ」について取り上げます。これをマスターすると上級者になった気分が味わえますw
※この記事は専門学校の講義用に作成されたものです 前回はLinuxでの基本的なコマンドラインの操作方法、ファイルやディレクトリの扱い方について練習しました。今回はディレクトリ(フォルダ)の「移動方法」について学習します。
※この記事は専門学校の講義用に作成されたものです LinuxにはWindowsやmacOSと同じ様にGUIを利用した操作ができる「XWindow」という仕組みもありますが、遠隔地にあるサーバを操作する場合には「コマンド」を入力して実行する方法が一般的です。 今回は初め…
小ネタです。 なぜか特定のサーバにSSHで接続できない現象が発生しました。他のサーバにはいつも通りに接続でき、DNSやサーバ自体の設定も特に変更していません。 $ ssh ec2-user@example.com -p 10022 ssh: connect to host example.com port 10022: Can't …
小ネタです。 AnsibleのPlaybookを作成していたのですが、何度もyumで同じパッケージのインストールを繰り返していると、処理に時間はかかるしネットワーク利用量(利用料)もバカになりません。 そこで一度でも利用したパッケージはローカルにキャッシュする…
LinuxやmacOSのTerminalのショートカットは様々な物が用意されていますが、一度に全部は覚えられませんw 特におっさんになってくると脳みそが受け付けてくれないのでここでは必要最小限の物をリストアップします。一度覚えてしまえばbashやzshであれば同じ…
小ネタが続いてますが、今回も小ネタですw Webサイトの改ざん検知を手軽にパパッと行いたい場合、単純にcurlなどで取得したファイルをdiffで比較するだけでも実現できます。 というわけで以下がコード。ここでは最終的にSlackに通知しています。 #!/bin/bas…
Bashで特定のファイルを順番に処理したい場合、配列をforでぐるぐる回してやるのがお手軽です。ここでは配列listで定義した3つのファイルを順番に指定ディレクトリへコピーしています。 #!/bin/bash # 対象のファイル一覧 list=( /tmp/foo.txt /tmp/bar.txt …
Bashでlsなどコマンドの実行結果を順番に処理したい場合は以下のようにforでぐるぐる回してやるだけです。 #!/bin/bash for file in `ls /tmp/*.json`; do echo "copy ${file} to /home/foo" cp $file /home/foo done ここでは「/tmp」ディレクトリ配下にあ…
日次バッチなどを作っていると、例えばバックアップファイルは最新30件だけ保存し、それ以上古いファイルは削除したいといった気持ちになりますよね。そんな時に利用するのが次のワンライナー。 $ cd backup/ $ rm -f `ls -t . | tail -n+31` これだと30日前…
例えばSSHでログインするために秘密鍵だけ渡された場合、公開鍵は自分で作成することができます。 $ ssh-keygen -y -f ~/.ssh/id_foo > ~/.ssh/id_foo.pub
AmazonLinux上にインストールしたMySQL5.7のrootのパスワードを忘れてしまったので再設定を行います。 基本的に公式ドキュメントの内容に沿った形で実施していきますが、日本語のドキュメントのバージョンがちょっと古いので5.7に合わせてあります。
ファイルの文字数や行数を簡単にカウントできるのがwcコマンドです。 恐らく「Word Count」の略称で、ワールドカップでもトイレでもありませんw 以下のように調査したいファイルのパスを渡すと、ファイルの行数、単語数、バイト数を表示してくれます。 $ wc…
今回は以下のようにディレクトリやファイルをツリー状に表示してくれるtreeコマンドです。 $ tree . . ├── LICENSE.txt ├── README.md ├── bin │ └── gpwd.js ├── coverage │ ├── clover.xml │ ├── coverage-final.json │ └── lcov.info ├── index.js ├── pa…
今回はコマンドラインでバイナリファイルを閲覧する方法です。サンプルとしてこのブログのアイコン画像を利用しています。
Ansible便利ですよね。 一度設定ファイルを作ってしまえばあとはコマンド一発で同様のサーバ環境が作れます。対象サーバも一度に何台でもまとめて設定できるのも便利。最近では人間が手作業で実行する日々の運用でも活躍するシーンが出てきました。サーバの…
ローカルでの検証用にVirtualBox上でLinuxを動かしているのですが、迂闊にkernelのバージョンを上げてしまうとGustOS用のドライバ(Guest Addition)の再インストールが高確率で発生します。それは良いのですが、問題は再インストールが一発で上手くいった試し…
Linux上のユーザーのパスワードを変更するにはpasswdコマンドを利用します。 実行例 自分のパスワードを変更する 自分のパスワードを変更する場合、管理者権限(root権限)は不要です。 $ passwd ユーザー katsube のパスワードを変更。 katsube 用にパスワー…
Linux上にユーザーアカウントを新規に作成するコマンドはuseraddです。 $ sudo useradd -m (ユーザー名) 細かい設定の変更は作成後にいつでも行うことができるので、オプションを指定し忘れた場合は各種設定を行うコマンドを追加で実行すれば大丈夫です。作…
Linuxで作成済みのユーザーを削除するにはuserdelコマンドを実行するだけです。 $ sudo userdel -r (ユーザー名) なお特に確認は求められず、Enterキーを押した瞬間削除されますので実行には十分気をつけてください。