読者です 読者をやめる 読者になる 読者になる

それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

指定したファイルの日付を取得してフォーマットするdateコマンド

date コマンドでファイルの日付を取得する。 指定したファイルの日付を取得するには $ date +'%F %T' -r /etc/aliases 2015-08-02 13:35:20 最終更新日が取得できる。 -r, --reference=FILE display the last modification time of FILE もちろん stat でも…

dateコマンドでiso/rfc日付時刻タイムゾーンをぱぱっとフォーマットして作る

date コマンド便利だけど、フォーマット指定がめんどくさい takuya@:~$ date --date "2017-03-22 + 90days" +"%Y-%m-%d %H:%M:%S" 2017-06-20 00:00:00 ああ、めんどくさいよ%Y-%m-%d 、記号が多くてめんどくさい。 よくつかう日付は、オプションが用意され…

sendmail でコマンドからメールを送信する。

メール通知のテストに使う。 postfix や exim4 のメールサーバーの設定をしていて、テスト・メールを送信したいときに、手作業でsendmail コマンドを送るのは、ちょっと面倒なのと、どのメールが未到達で、どのメールが到達したか区別するのが大変なのでスク…

sudoersの設定を分割する /etc/sudoers.d を使おう

/etc/sudoers.d で分割できる。 /etc/sudoers.d を使うと、必要なものを覚えやすいファイル名で書いておいてバージョン管理することが出来る。 編集方法 編集方法がめんどくさい。分割して管理できるが、各ファイルを編集するのにvisudoを使う必要があり、こ…

POSIX の メッセージ・キューを作成する(C言語)

POSIXのメッセージ・キューをC言語で扱う コンパイルには gcc -lrt を使う。 まずは送信するところから。 q_push.c #include <mqueue.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int main(){ int cnt; int ret; char *str; void *pt; mqd_t q; q</string.h></unistd.h></stdlib.h></stdio.h></fcntl.h></sys/stat.h></mqueue.h>…

POSIX の メッセージ・キューを確認する。コマンドで。

POSIX message queue を確認する。 Linux なら /dev に出現する。 takuya@:~$ ls /dev/mqueue/ キューがあるとき /sample という名前でキューを作ったのでキューを確認することが出来る。 takuya@:mq$ ls /dev/mqueue/ sample キューの状態をサクッと確認す…

シェルで指定文字に文字列を分割して結合する。

文字列をシェルで、指定文字数に分割して結合するには 選択肢になるコマンドは、分割・結合でそれぞれ次の通り 分割 flod grep 結合 paste tr などが使えることがわかった。 分割の例 fold -w2 grep -E -o '.{2}' 文字列を指定文字に分割する。fold コマンド…

Debian/ubuntu のapt自動アップデートのUnattendedUpgradesを設定する

Debian の apt 更新がめんどくさいのでなんとかする。 昔は cron-apt でやってたけど、今時はどうするのかなーと思って調べてたらUnattendedUpgradesがあったのでコレを設定することに。 Debian Wikiに従ってインストール sudo apt install unattended-upgra…

qpdfでPDFにパスワードをつける。

qpdf でパスワードをつける。 qpdf があればコピーを不可、編集不可、閲覧不可などのパスワードをつけることが出来る 使うオプション --encrypt qpdf --encrypt パスワード1 パスワード2 キー フラグ -- in.pdf out.pdf 最後にいれる -- はオプションフラグ…

GNU mc(:midnight commander)でファイラ使うと楽しい。

ようやく名前がわかったので使ってみた。 昔、教授が使ってて、なんやこれ!楽しそうと思ったファイラ。「これDOSですか?」「いいやちがうよ、古い頃から使ってるMS-DOSみたいなもんだな」「なんで?Finderあるじゃないですか?」「コレがいいんだよコマン…

curl で get/post/put/delete などメソッドを指定する

curl でHTTPのMethod指定する curl -X GET curl -X DELETE curl -X POST --data 'name=value&id=1' curl -X PUT --data 'name=value&id=1' ファイルを送信する場合は curl -X POST -F name=@path/to/name curl -X PUT -F name=@path/to/name JSON を送信する…

curl でAPIアクセスのヘッダ毎回指定を設定ファイルを使って省略する

API にアクセスするときHEADER多すぎ URLとPOST/GETのデータ以外に指定する項目が多すぎて嫌になる。 curl "https://api.example.com/api/v4/settings" \ -H "X-Auth-Email: takuya@example.com" \ -H "X-Auth-Key: gfhfdertgfdsertgf" \ -H "X-Auth-SID: xx…

文字列の長さ順にソートする(awk/sortコマンド組み合わせ)

文字列の長さ順にソートすると美しい。 なんでなんだろうね。アルファベット順よりも文字列長さ順でソートすると、出力がきれいに見えるんだよね。 awk/sort で文字列の長さ順にソートする。 command | awk '{print length() ,$0}' | sort -nr 例えばPATHを…

bcacheでSSDをキャッシュに使ってHDDアクセスを早くしてSSHD的なことをやる

ssd を書込み読み込みキャッシュに使いたい HDDのアクセスを早くしたい。Writeおせーんだわ。 あれこれ、実装があるけど lvm cache / dm-cache より、bcacheの方が圧倒的に簡単で速かった。 もちろん、こんなことをしなくても、よく使うデータはHDDからメモ…

コマンド(lzop)の圧縮展開の進捗どうですかー?

lzop 速くて便利だけど。どこまで終わってるの lzop って圧縮伸張がそこそこ速くて便利だけど、それでも数十GBやると結構時間がかかるんですよね。 その進捗見たいです。 progress コマンドでは出来ないことがわかった。 progress コマンドも候補に入るらし…

S.M.A.R.Tの値をsmartd で監視してメールを送る

HDD のsmart 状態を監視する HDD のSMARTで値を監視して、ハードウェアの状態が変化したり、故障が近づいたらメール通知しておくことにして、少し安心したい。 準備 sudo apt install smartmontools smartd の有効化 smartmontoolsを入れたら smartd がつい…

ぱぱっとIP/ドメインを調べるhostコマンド

host コマンドでぱぱっと調べる host コマンドなるものが有ります。dig みたいだけどdig ほどちゃんとDNSを見れるわけでもないですが、現在使用中のPCから見たドメインとIPの対応はきっちりわかります。 host コマンドの使用例1:Debian GNU/Linux takuya@:…

LinxuでHDDの状態を調べる。コマンド

コマンドでSMARTの状態を調べる HDD の状態を調べるには、S.M.A.R.Tを調べる必要があって、それには smarttools のコマンド一式を使う必要が有ることがわかった。 HDDが異常化か正常化知りたいだけなんだ! そんなせっかちな人には、此のコマンド PASSED と…

Deiban/Exim4通知メールをgmailで送出する。

メールの設定はめんどくさい SMTPリレーとかSMTP Outbound port Blocking 25 ( OBP 25 ) だとかさ、めんどくさいんですよね。理解できない人に、「○○が必要で」などと説明するのもめんどくさい。 Gmail 経由で送信する。 というわけで、一番手っ取り早くて、…

画像の比較をしてズレがないか調べる

image magick で画像の比較をすることが出来る。 画像の比較をするにはいろいろな方法がある。 目で見てわかりやすい→WEBや校正用 機械的に見てわかりやすい→ダイアログなどプログラムのテスト 画像におおきな影が出る→動体検出 等と大きく分けて使い分ける…

compare コマンドで画像のズレを見つけろ!

ImageMagickにはcompareコマンドがある。 compare コマンドを使うと簡単に画像を比較することが出来る。 これはWebkit2png で取得した画像を使うとレイアウト崩れを見つけられるので嬉しいと思う 画像比較の例 compare -highlight-color red 1.png 2.png out…

/etc/passwd を編集しても反映しなかった。→ usermod を使う

/etc/passwd を手で編集した。 なぜだかわからない。反映しない。手作業で編集は駄目だと思ったけどshellや home dir や gid をマトメて編集できるから、もう直接手で触ればいいやとおもったけど反映しない。 home_dir を変更しても反映しない。。。再起動が…

ネットワークのIPアドレスを一覧表示する(sort でIPアドレスをソート)

ローカルネットワークのIPを列挙する nmap を使って、ネットワークに疎通できるIPアドレスがどれだけあるか見ておく takuya@Desktop$ nmap -sP 192.168.2.0/28 | /usr/bin/grep -o '192.168.2.\d' 192.168.2.1 192.168.2.2 192.168.2.3 192.168.2.9 うちのロ…

ファイルサイズを取得し、変数に格納する

ruby や python からすぐ出来るんですが、bashでやると面倒ですね ruby File.size( 'path/to/file' ) python import os os.path.getsize('path/to/file') bash どうやるの? ls -l だと余計なものが多いし。。。まさか、cut してgrep する〜?awkする? いく…

curl でよく使う設定をまとめる ~/.curlrc

curl の基本設定ファイルを作ることが出来る ~/.curlrc Default config file, see -K, --config for details. .curlrc に書く書き方は -K で指定する config ファイルと同じ curl の毎回指定するのめんどくさいオプションを書いておくと楽 とくに、CookieやU…

pdfのページの解像度(ピクセル数)を調べる。

pdfinfo でファイルの中身を確認した PDFの解像度(ページのピクセルサイズが分かった) また同時に、pdfの権限などもわかった。 Title: Software Design 2017年2月号 Author: (株)技術評論社 Creator: Acrobat 10.1.16 Producer: Acrobat 10.1.16 Creatio…

pdfinfo コマンドでPDFページ数を確認する

pdfinfo コマンドが便利 time pdfinfo Software-Design-2017年2月号_00.pdf Title: Software Design 2017年2月号 Author: (株)技術評論社 Creator: Acrobat 10.1.16 Producer: Acrobat 10.1.16 CreationDate: Thu Jan 12 14:45:49 2017 ModDate: Fri Jan 1…

pvresizeを試してみた

lvm2 のよくわからないものを使うシリーズ 今回はpvresize を使ってみた。 正直言って、何に使うのかがまだ良くわからない。 物理HDDパーティションのサイズが変わるわけでもない。 150GB のディスクから 40GB のPVができた。残りの110GBは未使用というか、…

Sambaサーバーの接続を確認する。

linux からSambaサーバに接続を試す Debian から、Sambaサーバに接続、ログイン、閲覧可能なフォルダ一覧を確認。いちいちWindowsに切り替えて確認するのも面倒な話だし。SSHでリモートでSamba接続くらい確認したいよねってことで。 smbclient コマンド smbc…

GNU Linux でも brew コマンドで homebrew したい

brew 便利ですよね。 brew すごく便利です。 /usr/local/ や ~/.brew などに環境を組み立てる事ができる。 linux 側でmake しまくってると管理がめんどくさいし、dpkg だと衝突が・・・ linuxbrew.sh というサイトがあった 調べたら http://linuxbrew.sh/ と…

pdftk でPDFの回転をする

pdftk でPDFを回転できる。 PDFtoolkit のコマンド pdftk でPDFを回転できたのでメモ left , down , right cat するときに、回転キーワードをつければ、全ページ回転できる。 pdftk in.pdf cat 1-endleft output out.pdf pdftk in.pdf cat 1-enddown output …

LVMのlvreduce でファイルシステム(ext)を縮小する

LVMで管理しているボリュームを縮小する。 lvm2 で管理しているLVのボリュームを縮小して、容量を開放するための手順 作業手順は次のようになります。 ターゲットのLVとそのファイルシステムを確認する FSを縮小する lv を縮小する resize2fs はlvreduceの後…

LVMの lvextend でLVを拡張する

LVMで作ったLVのパーティションを拡張する。 手順としては、物理HDDのパーティションを拡張するときや、HDDを大容量に換装した時の手順とほぼ同じですね。 pv の確認 vg の確認 lv の確認 lv の容量を追加する lv の上のファイルシステムを拡張する pv の確…

LVMでボリュームを切り出して使う - 使い方とメリット

LVM 出来ることを試していくシリーズ LVMでボリュームを切り出して使う。 今回は、大きなディスクから、小さなディスクを作ってみる。 LVM的に表現すれば、VGから複数のLVを生み出す。この作業になります。 LVM でボリュームを分割する LVM でLV(論理ボリュ…

LVMの作成と削除のやり方の例-基本コマンド

基本的なLVMの作成例 LVM の作成計画 LVM の作成 LVM の削除 作ったものは後始末するということで、LVMを作って削除するまでをメモしておきます。 用意するもの LVM の管理下に置きたいHDD/SSD/パーティション LVM の名前 LVM の容量計画 LVM の容量計画 ど…

LVM上にLVMを構成する

LVM で切り出したボリュームをLVMのPEにすることが出来る ボリュームグループとボリュームグループを結合するのに何か手はないかなと考えていた。 ボリュームグループから切り出したボリュームを、別のボリュームグループに参加させたいなと思ったらあっけな…

imageMagickのconvertコマンドで進捗をモニタリングする

convert コマンドが遅い時がある PDFとJPGを扱ってると、時間がかかって後どれくらいだ?と気になることがあるので。 convert -monitor と monitor オプションをつけると、progress をモニタリングできて便利。 実際やってみるとこんな感じ takuya@$ convert…

fio でHDD/SSDのブロックデバイスのベンチマークを取る

ブロックデバイスのベンチマークを取りたいと思いました。 ぱぱっとやる方法だと、 dd hdparm 等があるのですが、キャッシュなどいろいろ考えることも多いいので。今回は fio を試してみました。 まぁ普段の速度測定は dd でやっちゃうんだけどね。。。ネッ…

SATA ディスクの接続・切断(オンライン・オフライン)

前回に、ホットプラグのやり方を書いたけど、どうも腑に落ちなかった。 検索にもう少し別のやり方がでてたから。そっちも調べてみることにした ディスクを一旦無効化する方法 root@acid:~# echo offline > /sys/block/sdc/device/state root@acid:~# cat /sy…

SATAの物理HDDをホットリリース(取り外し可能)にするホットプラグで抜き差し対応

SATA って昔からホットプラグ可能なんですよね。 マシンの電源を入れたまま、SATAのHDDをアンプラグしたり、プラグインしたり。 もともとSATAってホットプラグ対応なはず。eSATA とかもその流れだったような。 Linuxで抜き差しするときどうするのかな。 Wind…

シェルで乱数を使うには環境変数が楽

bashで乱数を扱おうともったら どうするんだろうと思って調べたら $RANDOM なる環境変数を発見した 環境変数 RANDOM の使い方 単純にecho するだけでいい。 echo $RANDOM 実際にどうなるか試してみよう takuya@:~$ for i in {1..10}; do echo $RANDOM ; done…

sgdisk(gdisk コマンドライン版) でまとめて変更する使い方

gdisk をコマンド(スクリプト)やシェルから使うには gdisk コマンド ライン版 sgdisk がある。 sgdisk、これを使うことで コマンドからまとめてディスクのボリューム操作を毎回なんども再実行できるようになる。 なぜこんなことを調べたのか LVM の実験で…

CPUの使用率を一定以下に抑える。cpulimit

あれ?ulimit 効かない? どうも、systemd に代わって ulimit 関連が変わってる気がするので、調べ直さきゃいけない。 今回は、cpuさえlimitすればいいから、cpulimit を使うことにした。 cpulimit をコマンドを使って指定する。 ffmpeg をcpu エンコするとC…

CPUクロックを負荷に応じて変えるようにする。または固定する

i7 CPUなどには、コアクロックの動的変更がついてて CPUのクロックが動的に変わるようにしておくとバッテリー消費が抑えられる。 そんなんはじめから入ってると思うだろ。 centos minimal とか、入ってないやつがあるんだよ。参った。古いDebianとか。 最新D…

ログインシェルを変更するーデフォルトシェルのきまりかた( chsh/ 設定/ shells )

ターミナルを起動したときに実行するデフォルトシェルを変更する ターミナルを実行したときに、起動するシェルは通常は /bin/bash です。 このbash を変更したいと思います。(たとえばzsh や brew 版 bash など ) この記事で書くこと デフォルトシェルのき…

less で大文字小文字を区別しない IgnoreCase / noCase する方法

less って vim 的に使えると思ってたけど、CaseSentiveなんだよ。 less で殆どの場合解決するけどだめだわ。大文字小文字が区別されちゃう。 -i をつける。 起動オプションをつけると ignore case できることがわかった。 alias する alias less='less -i ' …

systemd起動が遅いので 起動時間の計測

systemd でたまにめっちゃ遅い時がある。 systemd で起動していたらたまに遅い時がある。 理由を探すために、まず、起動時間のログを見てみることにした systemd の起動ログをグラフで出す方法がある。 起動の状況を、グラフ(SVG)の出力して閲覧することが…

LXCのコンテナ環境をぱぱっと作る。(debian apt)

LXC 環境を作る そろそろ、LXCも枯れて来た存在になったし。Systemdとcgroup関連のゴタゴタもなさそうなのでOpenVZをやめて、LXCも使おうと思い立つ。 LXCのサポートはDebian 9 Strechでまた変化するっぽい Debian Wikiを眺めていたら、lxc-net などのサポー…

ぱぱっとkvm/libvirtの仮想環境を作る(debian apt)

ぱぱっと仮想環境を作って使いたい。 今回作るのは、kvm を使った仮想環境。 ターゲットはDebian Jessie jessie 以降の特徴 jessie 以降では, CONFIG_VFIO_PCI_VGA がオンでビルドされているので、VGA Passthroughだって可能らしい。これは試さないと。 The …

gz圧縮されたログファイルから該当データを探したい

gzip 圧縮された ログファイル達 たくさんのログファイルがあるけれど、まさか、イチイチ展開して中身を見るわけにもいきません takuya@:apache2$ ll 合計 10716 -rw-r----- 1 root adm 11948 2016-11-05 18:56 access.log -rw-r----- 1 root adm 371968 201…