動かざることバグの如し

近づきたいよ 君の理想に

linux

findコマンドでnode_modulesを除外して快適検索

やりたいこと findコマンド実行したいけど、node_modulesの中身ファイル多すぎて検索から除外したい。 それでいうと .gitも中身多くて検索重くなってしまうので外したい。 つまり、 findコマンドで複数ディレクトリを除外して検索したい、って話 コマンド fi…

Linuxで1ヶ月前の日付を取得するコマンド

やりたいこと 1ヶ月前の日付を取得したい ただそれだけ コマンド date -d "`date '+%Y-%m-01'` 1 months ago" '+%F' なんで日付部分を1日基準で計算する必要があるの ググって 参考リンク 日付を取得する | UNIX & Linux コマンド・シェルスクリプト リファ…

sshでログインしたサーバーのGUIアプリをMacで起動させる方法

毎回忘れるのでメモ 環境 サーバー側 linux OS sshができていること 今回はテストで xeyesを動かすのでそれもインストールされていること クライアント側 MacOS 今回は検証用なのでセキュリティは一切考慮しない やりたいこと 通常、sshでは接続先にGUI環境…

Linuxで特定の古いプロセスを一括killしたい

環境 Ubuntu CentOS やりたいこと 普通プロセスは終了したらexit(0)なりなんなりでなくなるが、なにか予期しないことが発生すると残り続けてしまう。 それによってメモリを食い潰してしまってサーバーがダウンしてしまう、、なんてこともありうる。 そこで特…

ddコマンドを使って簡易ディスク速度を測定する

環境 Linux やりたいこと ddコマンドはどのOSにも最初からインストールされている。それを使って簡易的なディスクのパフォーマンスを確認したい。 しっかり見るならfioってツール使ったほうがいい。 thr3a.hatenablog.com コマンド 以下 dd if=/dev/zero of=…

Ubuntuでディスクを完全にフォーマットする

ただのフォーマットでは消せないので、0埋めをする 戻せないので注意 方法 Ubuntuではデフォルトで shredというコマンドがインストールされている。 -v 進捗状況を表示する -n (回数) ランダム情報を書き込む回数を指定する(デフォルトは3) -z 最後に0を書…

Raspberry Piがたまに重くなるのはapt-daily.timerのせいかも

結論 もしRaspberry Piの /var/log/syslog に以下のようなログがあったら重くなってるかも Oct 5 19:03:10 raspi13 systemd[1]: apt-daily-upgrade.timer: Adding 23min 12.345204s random time. Oct 5 19:03:10 raspi13 systemd[1]: apt-daily.timer: Addin…

Squidで多段プロキシサーバーを実現する設定

構成 そもそも多段プロキシだが、Squidで受けたアクセスをさらに別のSquidへ流す仕組み 通常 [ client ] -> [ Squid server ] -> [ WEBサイト ] だが、これを [ client ] -> [ Squid serverZ ] -> [ Squid serverA ] or [ Squid serverB ] -> [ WEBサイト] …

jqコマンドで複数フィールドの値を1行に表示させる

たとえば {"users":[{"id":1,"name":"taro"},{"id":2,"name":"hanako"}]} のようなJSONがあったとして、 1 taro 2 hanako のように整形して表示させたかった 結論(2020年8月30日追記) jq単体でできた。コメントしてくださった方ありがとうございます cat t…

Unixドメインソケットをコマンドから生成する

一生に1回くらいの頻度で、Unixドメインソケットを自分で作りたいと思うことがあるはず(ない コマンド 調べてみると、意外にもLinuxのコマンドでは生成できないらしい。 で、何故かPythonで作れた /tmp/test.sockに作りたいUnixドメインソケットの絶対パス…

インストールされたOpenCVのバージョンを確認するコマンド

環境 Ubuntu 18.04 OpenCVバージョン確認する! 自分が入れたサーバーなら流石にどのOpenCVを入れたか分かるが、プリインストールされていたり、他人がインストールしてた場合はバージョンがわからない。そこでコマンドで確認する方法をいくつかまとめておく…

Jetson NanoのWifiが不安定問題

Jetson Nano自身にはWIFIは搭載されてないので、自分でUSBのWifiアダプタを購入して接続する必要があるのだが、いかんせん不安定だったのでメモ 環境 Jetson Nano WIFIアダプタ Edimax EW-7811Un 他のWIFIアダプタを試しても症状は同じだった 状況 pingです…

Jetson NanoにTensorFlowとKerasをインストール

Jetson Nanoとは1万円弱で買えるRaspberry Pi大きさ並みのGPU付きシングルボードコンピュータである。 で、GPUがあるということは当然機械学習用なわけで、早速ライブラリのインストールをした 環境 Ubuntu 18.04 CUDA 10 最初から入ってる python 3.6 pyen…

systemdで起動すると/etc/security/limits.confの設定は効かない

検証環境 Ubuntu 18.04 背景 Ubuntuサーバー上にElasticsearchを構築しようと思った。 が、起動時に以下のようなエラー [2019-04-10T15:59:19,986][ERROR][o.e.b.Bootstrap ] [deca01] node validation exception [1] bootstrap checks failed [1]: memory l…

特定のNIC経由で通信できるか確認するコマンド5選

通信できるか確認したい ネットワーク系の問題を解決するのはプログラミングより厄介で、いわゆる問題の切り出しが肝になる。 ここでは特定のNIC(ここではeth0)とか自身のローカルIPを指定して、そこ経由で通信可能かどうかをチェックできるコマンドをまと…

raspi memo

ネットワークの設定 hostnamectl set-hostname raspi13 # cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="xxxx" psk="xxxx" } ip link set wlan0 down …

LinuxでL2TP/IPsecなVPNサーバーを構築する

自宅で動いているTinker Board(ARM)を使ってVPNサーバーを構築してみた。 PPTPでVPNサーバーを構築するのは割と楽なんだが、セキュリティ上の理由から、Macではその認証経由では接続できない。ということで、L2TP/IPsecしかなく、YAMAHAのお高いルーターを…

Nginxで全リクエストをメンテナンスページにリダイレクトする設定

環境 nginx 1.14 やりたいこと メンテナンスするのですべてのリクエストを遮断したい。けどnginx 404のエラーページ出るのは良くないので、用意した静的htmlファイルを表示させたい。 設定 まずnginxの設定を以下。 server { listen 80; server_name hogehog…

ChefでTimezoneとhostnameの設定が1行で出来るようになってた

Chef記事、もっと流行ってほしい。。。(切実 環境 Chef 14 Ubuntu 18.04 ChefでLinuxの構築をしているのだが、タイムゾーンとかhostnameの設定もしなくてはいけない。 が、割とOSによって方法が違くて面倒だったりしたのだが、たまたま公式ドキュメントを見…

Docker&dnsmasqでローカルにオレオレDNSサーバーを構築する

Macで開発する際に/etc/hostsを書き換えて作業することが結構おおい。 が、そのたびにhosts書き換えるのもだるいし、/etc/hostsの悪いところはワイルドカードに対応していないところである。。 ってことで、今回はMacにDNSサーバーを入れてみることにした。…

Linuxでデフォルトゲートウェイを変更するコマンド

環境 centOS Ubuntu 最近のディストリビューションならipコマンド入っているのでいけるはず コマンド 例えばデフォルトゲートウェイのIPを192.168.0.1、経由NICをeth1とすると、 /sbin/ip route replace default via 192.168.0.1 dev eth1

sedコマンドで正規表現を使う場合は注意が必要

結論 sedコマンドの正規表現は高級言語の正規表現と同じ感覚で使うと死ぬ 必ず動作テストをすべし 発端 例えば以下のようなテキストファイルがあったとして、 ~ $cat /tmp/sample.txt 1a 2b 3c 4a 5b 「a」を含む行を一括削除したいとする。以下のコマンドで…

Chefでyarnをインストールするレシピ書いた

やりたいこと yarnでnpmパッケージのインストールを行いたいのではなくyarnバイナリファイル自体をChefで自動インストールしたいって話 レシピ include_recipe 'apt::default' apt_repository 'yarn' do uri 'https://dl.yarnpkg.com/debian/' key 'https://…

msgpackをコマンドラインで使う

MessagePackと呼ばれるJSONのような、、だけど似て非なるオブジェクト形式がある。 MessagePack: It's like JSON. but fast and small. 具体的な説明は公式ドキュメントに譲るとして、phpやruby 、Pythonで扱うライブラリはあるものの、linuxのコマンドで使…

Amazon Linuxのsysctlの設定を参考にすべき

EC2でハイスペックなインスタンスを作成してAmazon Linuxを起動すればベストな設定のsysctlの値が取得できるのでは説 abi.vsyscall32 = 1 crypto.fips_enabled = 0 debug.exception-trace = 1 debug.kprobes-optimization = 1 dev.hpet.max-user-freq = 64 d…

Ubuntuでdebファイルをインストールせずに解凍だけする

環境 Ubuntu 18.04 やりたいこと 通常apt install nginxのようにaptコマンド経由でパッケージのインストールを行うが、事情的に.debファイルを落としてきてインストールってパターンもある。 ただパッケージマネージャー経由じゃないだけあって先に手元で解…

dockerでWineをインストールするときにライセンス確認画面から進めない問題

環境 Ubuntu 18.04 wine 1.6 症状 ubuntuのイメージを使ってdockerをbuildする。 RUN apt-get update RUN apt-get install wine1.6 xvfb -y みたいにwineインストールしようとすると、 (略) If you acquired this product in the United States, this EULA…

シェルスクリプトからrbenv上のrubyを実行したい

環境 rbenv 通常rbenvは/etc/profile.dか~/.bashrcなどの読み込み時にロードされる。 が、シェルスクリプトからだとロードされないのでrbenvが無い環境扱いになってしまう。 ので、以下のように明示的にrbenvを読み込ませる必要がある。 #!/bin/bash export …

Linuxでパーミッション情報やシンボリックリンクを維持したままコピーしたい

特定のディレクトリをバックアップしたいとき、cp -r target destすればもちろんコピーできるが、とっても大切なデータの場合慎重になる。 というのもcpコマンドではパーミッションまで保持してくれないからである。 -aオプションをつけると属性を引き継いだ…

Let's EncryptのワイルドカードSSL証明書の更新に苦労した話

経緯 一応ドメインを持っていて、turai.work ドメインを持っているのだが、Let's EncryptのワイルドカードSSL証明書で運用している。 期限も近づいてきたし、certbot-autoコマンドで更新するか〜と思って更新を実行したのだが /root/certbot/certbot-auto re…