Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

linux

Systemdタイマーユニットをつかう

Systemdでプログラムを初期起動させる際、周辺デバイス(たとえばLANとか)の立ち上げが遅くてアプリが起動できないといったケースがあります。 まぁ、疎通するまでリトライするとかすればいいのかもしれませんが。今回は、Systemdのタイマーユニットを使っ…

LUKSで暗号化したディスク2台を同期してバックアップする

実際のところ まずは暗号化したディスクを二系統用意しておきます。 $ sudo cryptsetup luksOpen /dev/sdX storageA $ sudo mount /dev/mapper/storageA /mnt/storageA $ sudo cryptsetup luksOpen /dev/sdY storageB $ sudo mount /dev/mapper/storageB /mn…

LUKS(Linux Unified Key Setup)でストレージを暗号化する

実際のところ 領域の分割 sudo parted /dev/sdb (parted) mklabel gpt (parted) mkpart primary ext4 0% 200GB (parted) mkpart primary ext4 200GB 100% (parted) print (parted) quit | 必要なツール apt-get update apt-get install -y cryptsetup 暗号化…

Ubuntuが稼働しているPCのサスペンドや休止を無効化する

ミニPC,Odyssey X86 Blue オデッセイブルークアッドコアセレロンJ4125 Windows 10 Mini PC、128GB外部SSD(TELEC) (Odyssey X86 Blue ミニPC)seeed studioAmazonSeeedのOdyssey Blueをシステム制御用のPCとして使っています。 機能は兎も角、一定時間でサス…

Ubuntu系のシステムでタイムゾーンを変更する

実際のところ $ sudo dpkg-reconfigure tzdata「Asia」->「Tokyo」 参考もと Ubuntu Manpage: dpkg-reconfigure - reconfigure an already installed package

debian系OSでUSBデバイスをソフトウェア的に抜き差しする

node-redでUSBカメラを使おうとしたところ、 おそらくUIの方に握られてInjectの時刻毎の実行ができないケースに遭遇しました一応抜き差しで何とかはなったものの、最終的にはリモートで操作したいので……これを機にコマンドでやる方法を調べる事に 実際のとこ…

NanoPi Neo2がNPNトランジスタをつかう

一応電子工学科を出ておきながら、トランジスタは敬遠しておりました。 今回、預かっている試作装置に採用されている事もあり、復習がてらNano Pi Neo 2で動かしてみました。 実際のところ 配線 Nano Pi Neo 2はUSBシリアルを経由して接続。 これにより、5V…

Nano Pi Neo 2の格好いい金属ケース

NanoPi Neo2には公式からHATと金属ケースのセットがでており、これが中々にいいものです。外観はこんな感じ。 GPIOがボタンや文字盤で埋まりますが、放熱性能は向上。 ミニ六角とOS書き込み済みSDカードつき。 試験用ツールの導入 OLEDとボタンの試験動作を…

timeoutコマンドで一定時間たったらシグナルを送る処理を実装する

いままでシェルスクリプトのsleepとループでぶん回していましたが……coreutilの中に便利なコマンドがありました…… 実際のところ $ [[ $( timeout --signal=SIGHUP --kill-after=2s 2s /home/shuzo/testExit.bash > /home/shuzo/log.log ) ]] && echo none$ ca…

bashのdouble bracket ([[ ]])で論理判定する

実際のところ こんなスクリプトがあったとします ~$ cat cmd1.bash #!/bin/bash printf $(basename $0) exit 0これを二重角カッコ内で判定すると、正は0、負は1を返します。 これに&&や||をつなげて処理を続けます。 $ [[ ./cmd1.bash ]] && echo 0 0$ [[ …

ptreeコマンドで親プロセスと子プロセスの関係表示

ptreeコマンドをつかうと、親プロセスと子プロセスの関係を表示できます。 実際のところ こんなの感じで、testExitの中でtestSubをよむというモンがあったとしあmす。 $ cat testExit.bash #! /bin/bash COUNT=0 function catchHup () { printf HUP } trap …

exitで渡すのは終了ステータスであってシグナル番号ではない

ちゃんと勉強した人なら当然なのでしょうが、私はちゃんと分かっていなかったのでメモ。shuzo-kino.hateblo.jp の補足的内容。 exitでは数字を渡して終了できるのですが……なんとなくシグナル番号を渡すもんだと勘違いしており $ cat testExit.bash #! /bin/b…

HUPシグナルをトリガーにしたスクリプトの再起動処理

再起動等の意味合いがあるシグナル ただ、機能をちゃんと作らないと普通の停止シグナルと同じ 実際のところ とりあえず使う 前回のスクリプトをベースにHUP(シグナル番号1)を捕まえる処理を書くとこんな感じに。 つかんだ処理を分かり易くするため、起動…

pkillはKILL以外にもシグナルを送る事ができる

実際のところ 実行権限をつけた、こんなファイルがあったとします。 $ cat testExit.bash #! /bin/bash COUNT=0 trap "printf '\n\r`basename $0` is closing.'" EXIT trap "printf '\n\r良夫ちゃんゴハンの時間ヨ\n'" 14 while true do COUNT=$((COUNT + 1)…

ssh越しに画像を出すならfehコマンドが高速かもしれない

ssh越しの画像表示にimvrを使っていました。 機能に不満はなかったのですが……fehコマンドという奴がものすごく高速だったのでこの機会に乗り換えてみました。 端末で絵をみるというだけなら、sixel対応端末を経由する手も有用かと WSL上でsixelな画像を端末…

Ubuntuでローカルタイムを変更

RaspberryOSだとraspi-configで出来ますが、Ubuntuだとそういうのはないので別の方法を使う事になります。 実際のところ shareディレクトリの中にある地域情報を、etcディレクトリにある時刻設定ファイルに上書きするだけ。 $ sudo cp /usr/share/zoneinfo/A…

dateコマンドで手動で時刻合わせ

cronを意図通りの時刻で動作させるためには正確な時刻設定が必要なわけですが、 ローカル運用RasPiなどでは手動で時刻合わせする必要があったりします。 一時的にネットを使って同期する方法もありますが、今回はベタにdateコマンドを使って設定してみます。…

ブラウザでSSHログインができるshell in the box

必ずしも恵まれた環境ばかりでない何かの都合でスマホアプリの内蔵ブラウザで無理やりする日もくる……かもしれないそんな時に使える 実際のところ 今書いてまs 参考もと orebibou.com GitHub - shellinabox/shellinabox: Official-ish Fork of Shell In A Box

CLIベースのファイルマネージャー「mcコマンド」

実際のところ 導入 $ sudo apt install mc つかいかた 起動は簡単で $ mc移動すると、下の方に現在地が表示されたり 上のほうのメニューっぽいのをマウスで押すと実際メニューがでてきます(困惑 ……昔はよくあるUIだったんでしょうが、はじめて所有したPCがW…

ネットワークインターフェイス(NIC)を指定してCurlコマンドをつかう

RasPiに4GPIのような外向きネットワークと、開発用の社内ネットワークが混在しているようなケースで、 Curlで極力重い処理は社内ネットワークでやりたいってことがあるかと思います……てかありました。そういう場合、Curlのinterfaceオプションをつかうと、切…

Curlコマンドにcookieをもたせる

CurlコマンドでPOSTする際、cookieが必要だったりすることもあります。 そういう場合も、幸いにして、cookieを持たせるオプションがあるので、そいつを使ってきましょう。 実際のところ cookieつきでPOSTする "URL"に対し、cookies.txtに記載されたcookieを…

ImageMagickでCMYKの色分離をする

shuzo-kino.hateblo.jp で企んでいたことが目途がある程度たってきたので、メモ。ちょっと前にOpenCVでやってみましたが、 方向転換して伝統と実績のImageMagickをつかって、色判定をやっていこうと思います。まずは色分離から。 実際のところ 機体はRasPi 3…

ルートユーザー状態で、他ユーザー扱いでコマンドを実行する

pipの依存パッケージの関係で、ルートユーザーでは入れてないけど特定ユーザーでは入ってるパッケージがあったとします。 実際のところ $ sudo /usr/bin/python3.7 Python 3.7.3 (default, Dec 20 2019, 18:57:59) [GCC 8.3.0] on linux Type "help", "copyr…

X Window利用の画像ビュワー imv

RasPiとカメラを組み合わせて使うアプリの開発中にいちいち絵をみるためにVNCをつかうのが馬鹿らしくなってきました。 でX window(X11)の画像ビュワーがないか探したところ……やはりありましたよ。 端末で絵をみるというだけなら、sixel対応端末を経由する手…

何らかの事情でapt install/upgradeを中断したとき

実際のところ $ sudo apt upgrade E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.dpkg を直接叩いてゴミを片付けないといけません。 $sudo dpkg --configure -a Setting up libmono-system-servicemod…

stringsコマンドで条件一致時のオフセット値も表示する

stringsコマンドで条件一致時のオフセット値も表示する場合”-o”オプションで数値がでてきます。 が……どういうわけか、デフォでは8進数です。 $ strings -o /usr/bin/make | head 1070 /lib64/ld-linux-x86-64.so.2 1533 ha@&M 3732 =Yg- 4117 }(>v 4277 DuM&

findコマンドで複数タイプの拡張子を対象にサーチする

実際のところ $ find /path/to/source/package -regex ".*\.\(svg\|png\|xpm\|gif\|ico\)$" 参考もと デスクトップエントリ - ArchWiki

xdotoolでGUIツールの操作をする その1:導入

一時、ネットゲームでボット行為といって自動的にモンスターを倒し続け寝てる間にレベルアップ~なんてのが流行った事があります。 xdotoolは業務でもそういったアレができるようになるツールです。ソコソコ歴史のあるツールで、ネットを探すと古いサイトな…

systemdで前回起動してから間が開いた場合に実行するスクリプトを書く

OnUnitInactiveSecオプションを使えば、前回起動してから間が開いた場合に実行するスクリプトを用意することができます。 実際のところ [Timer] OnUnitInactiveSec=1h 参考もと systemd.timer(5) — Arch manual pages Talk:Systemd/Timers - ArchWiki

ISO 8601形式の文字列をdateコマンドで加工する/出力する

時刻同期標準のISO 8601形式で記述された文字列を dateコマンドでよろしく扱う方法です。他の時刻構文と同様、"-d"オプションでよろしく判定してくれます。 タイムゾーンは、使用中のシェルの設定が反映されます。 私のはJSTなので、よろしくやってくれます…