茶トラ猫エンジニア

フリーランスとして働く、先が見えないエンジニアのメモ帳

Linux

Linuxのコマンドの結果をパイプで次のコマンドの任意の位置に使う方法

タイトルだけ見ると何を言っているのかよくわからないかもしれませんが、要は Linux や Mac のターミナル上で以下のようなことがしたいわけです。 複数行のテキストデータから 1 行目を取り出し、その 1 行から最初の空白までの項目を curl コマンドのリクエ…

AmazonLinuxで新しいユーザを作成してec2-userを削除する

AmazonLinux ではデフォルトで ec2-user というユーザが作成されています。 これは AmazonLinux で EC2 を構築した際にも紹介しました。 www.saratoga.jp またこの ec2-user は、EC2 インスタンスを構築する際に設定する秘密鍵でアクセス可能となっています…

AmazonLinuxでsshの待ち受けポートを22番から別の番号に変更する

EC2 で Web サーバを構築する手順に盛り込もうと思いましたが、ssh の待ち受けポートの変更だけで記事を独立させてみました。 ここでは ssh の待ち受けポートを 22 番から 10022 番に変更する方法を紹介します。 ssh のデフォルト待ち受けポートが 22 番なの…

AWSでWebサーバ用途にEC2(AmazonLinux)の環境を構築する

AmazonLinux2 が正式リリースされて 1 ヶ月以上が経過しました。 次に新しく EC2 を作るなら乗り換えるのもアリかなと思っていましたが、今回は古いアプリを動かしたいので断念。 これまでに何度も構築している AmazonLinux のディストリビューションでいき…

AmazonLinuxでnslookupしてELBのIPアドレスを確認する

ELB の IP アドレスってどんなものが割り振られているか知っているでしょうか? ELB を利用する場合は、Route53 などでエイリアス設定すると思うのであまり需要はないと思いますが、ELB の設定を変えて調査したい場合や、既存の構成に影響を与えずに裏側の E…

AmazonLinuxのシステムに登録されているログインシェル

ログインシェルを確認するには、以下のコマンドを実行します。 $ cat /etc/shells /bin/sh /bin/bash /sbin/nologin /bin/dash ちなみに、/bin/sh は bash に対するシンボリックリンクだったりします。 $ ll /bin/sh lrwxrwxrwx 1 root root 4 Sep 5 2017 /b…

AmazonLinuxでEC2起動時にスワップ領域の割り当てに失敗

EC2 のインスタンスを再起動した際に、スワップ領域の割り当てに失敗していたので調査してみました。 起動時に自動で割り当て スクリプトの実行確認 スクリプトエラーの原因調査 起動時に自動で割り当て EC2 起動時のスワップ領域割り当てですが、これまでは…

VagrantでCentOS6.9のイメージを使う

CentOS7 が既に 7.3 まで出ていますが、AmazonLinux がまだ 6 の構成と似ていることから、なかなか 7 系に移行できません。 そこで、Vagrant のイメージも 6 系の最新版を使うと思ったのですが、下記の BOX 置き場には 6.7 までしかないのですよね・・・。 V…

AmazonLinuxでLet's Encryptを利用する

SSL(https)でのサイトアクセスが当たり前の時代になり(Googleの動向で)、SSL のサーバ証明書を設定する機会も増えました。 数年前までは、個人サイトにおいては格安の SSL サーバ証明書を取得するのが一般的でしたが、Let's Encrypt や AWS の ACM(AWS Certi…

CentOS7でawscliをセットアップしてS3に接続する

AmazonLinux だと最初から AWS コマンドラインインターフェイス(CLI)が使えるのでいいですが、今回は CentOS7 を使うことになったので、S3 のバケットの状況を確認するために awscli をセットアップしてみます。 awscli は pip コマンドを使ってインストール…

コピーコマンド(cp)のエイリアスのオプションを無効化する

サーバ上でディレクトリのコピーをする際に、-f オプションを付けているにも関わらずファイルの上書き確認が出るので何でだろうと思っていました。 $ cp -rf /tmp/images /var/www cp: overwrite ‘/var/www/images/a.gif’? よくよく調べてみると、alias で c…

crontabを消しちゃった時にアタフタしない対処法

たまたま crontab 関連で検索していたところ、こんなタイトルの記事が目に留まりました。 crontab -e は「絶対に」使ってはいけない 例えば root ユーザーで crontab -e すると、/var/spool/cron/root が書き換えられるわけですが、visudo が /etc/sudoers …

Linuxのdateコマンドでよく使う日付フォーマット(1日前後、1ヶ月前後など)

久し振りにシェルでバッチでも書こうかと思い、前日の日付を取得しようとして date コマンドのフォーマット指定の仕方を忘れる。 結局、別のファイルを見て思い出すかネットで検索するハメになるのですが、自分の備忘録としてどこかに残しておくと便利です。…

jpeg画像のExif情報を削除するjheadをAmazonLinuxにインストール

画像アップロード時に jpeg ファイルだったら Exif 情報(撮影時の位置情報など)を削除するというのは一般的になりましたが、サーバ上にアップされた後のファイルから一括で削除したい場合はコマンドラインが楽です。 今回はコマンドラインで画像の Exif やサ…

AmazonLinuxにRedisクライアントをインストールする

AWS で ElastiCache(Redis)を使おうと思って、そこへ接続するために Redis クライアントをインストールしました。 RDB 同様、データ量が多くなるとコマンドラインでは不便な場面も出てきますが、目的のキー名がある程度分かっていればコマンドラインでも十分…

sedで連続する半角スペースを1つにまとめる

MySQL のスロークエリを定期的にレポートするシェルを書いていたのですが、発行される SQL に改行(\nや\r)やらタブやら連続するスペースが混在していて、ちょっと苦戦していました。\r が混ざっていたのにはなかなか気付かなかった・・・。 最終的には、改行…

CentOSでRedisサーバを使う

冗長化した Web サーバなどで、セッションの管理や、セッションや特定のユーザーに紐付く一時データを管理するのに memcache を使う場面は多いと思います。 その memcache の中でも主流なのが memcached ですが、最近では redis の言葉をよく聞くようになり…

RedHat EnterpriseLinux5.6(RHEL)の体験版ダウンロード

仕事先で RedHat EnterpriseLinux の体験版ダウンロードページまで辿り着けないって聞いていたので、自宅で試してみることにしました。 今回は RedHat EnterpriseLinux5.6 の 64bit 版をダウンロードして VMWare でインストールしてみます。 RedHatのユーザ…

swapon failed: Invalid argumentのエラーが出る場合の解決方法

swap 領域を持ったフラッシュメモリを別のフラッシュメモリにコピーして運用していたら、Linux 起動時に下記のようなエラーが発生しました。 fsck from util-linux-ng 2.17.2 swapon: /dev/disk/by-uuid/xxx-xxx-xxx-xxx-xxxswapon failed: Invalid argument…

curlでファイルアップロード(HTTP PUT)

Linux のコンソール上でファイルをダウンロードする時には wget をよく利用します。逆に http のプロトコルを使って手軽にファイルをアップロードしたい場合は curl が便利です。 curl は FTP などもっと多くのプロトコルを扱えますが、http で PUT を使う場…

tarコマンドでtar.gz形式のファイルの解凍と圧縮

Linux 向けのちょっとしたツールを扱う時、tar でアーカイブして gzip で圧縮したファイル形式が多いですよね。 逆に複数のファイルやディレクトリをまとめて提供する場合も、tar.gz の形式に圧縮して利用するケースに遭遇します。 今回は tar コマンドで ta…

Linuxのパーミッションの先頭の1文字の種類

Linux 上で /tmp の下を見ていたら、パーミッションの先頭が s のファイルを発見。 先頭はファイル種別が定義されますが、これまでに一般のファイルやディレクトリ、シンボリックリンクくらいしか見ることはありませんでした。 そこで、パーミッションを表す…

Smartを使ってUbuntuでHDDのエラーチェック

「SMARTでハードディスクの温度を計測する」で少し触れましたが、HDD の温度やエラーの有無を検査してくれるツールとして Smart があります。 www.saratoga.jp ディストリビューションによっては、OS インストール時に使用できる場合もありますが、Ubuntu10.…

Ubuntuでサービス管理(sysv-rc-conf)

Ubuntu でインストールしたデーモンアプリは、基本的にサービス起動することが前提なのでサービス制御するためには別のツールを使用しないといけません。 RedHat や CentOS などではデフォルトで chkconfig がインストールされていて、これでサービスの管理…

UbuntuでデバイスのUUIDを確認する

Ubuntu では、各デバイスのマウント情報が UUID をベースに定義されています。 /etc/fstab を見るとわかりますが、以前のように /dev/sda1 や /dev/sdb1 のようなデバイス名ではなく、UUID がキーとなっています。 これは、USB などの外部ストレージが手軽に…

OpenSUSEでProxyの設定をする

openSUSE のプロキシ設定は、GUI の画面の場合、「ネットワークプロキシ」や「YaSYの設定」から設定することができますが、「ネットワークプロキシ」で設定してもうまいことプロキシを使ってくれません。 今回、初めて GUI の画面を利用したので、この辺の設…

SMARTでハードディスクの温度を計測する

smartctl コマンドは HDD の故障検知をするものですが、HDD の温度も一緒に出力してくれます。 一般的に HDD の温度は上限が 50~55 度くらいと聞いたことがありますが、省スペースの PC やノート PC では 50 度を越えることも珍しくありません。 では、実際…

sedでhtmlのタグを除去する

文字列の置換に sed はよく利用していますが、複雑な正規表現が少し苦手です。 今回は html のタグを除去する正規表現を試してみました。 htmlが書かれたファイル htmlタグの除去 htmlが書かれたファイル 以下のリンクタグの html が書かれたテキストファイ…

iconvでファイルの文字コード変換

仕事で EUC の文字コードのファイルしか受け付けないシステムがあったので、nkf で文字コードを変換しようと思ったらインストールされてない・・・。 こんな時は iconv しかシェルで頼るものはないのですが、さすがにこれは入ってました。(今回は IBM AIX の…

vimでファイルエンコードを正しく表示する

ターミナルの環境によっては、vim でマルチバイト(日本語など)の文字列を含むファイルを開くと文字化けすることがあります。 今回は、vi でファイルを開いた状態でファイルエンコードの変更をする方法を紹介します。 文字コードの確認 ファイルエンコードの…