動かざることバグの如し

近づきたいよ 君の理想に

linux

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…

docker-composeでアスタリスク(*)を含むコマンドを実行したい

なんでできへんのや 環境 $docker -v Docker version 18.06.1-ce, build e68fc7a $docker-compose -v docker-compose version 1.22.0, build f46880f やりたいこと docker-composeが起動している上で以下のようにするとdocker内でコマンドを実行できる。 doc…

FFmpegで指定時間ごとに静止画を切り出して連番画像で出力する

動画を機械学習されるあたり、画像に変換する必要があったのでメモ。なんかググって一番最初に出てきたサイトのオプションではできなかったので注意 1秒毎に〜枚画像を生成したい場合 -rオプションをつけることで指定フレームごとに抽出できる。以下のように…

iptablesミスってEC2インスタンスにSSHログイン出来なくなった時の対処法

の対処法 試したのはCentOSだけど、Ubuntuとか他のディストリビューションでも可能と思う sshできなくなったら復元は不可能 GCPみたいに画面を擬似的に映し出す機能はないし、ServersManVPSのようにiptablesを謎の力でリセットするなんてことはEC2では出来な…

シェルスクリプトで引数オプションをパースするテンプレート作った

なんだかんだ言ってシェルスクリプトはどの環境でも動くから自作スクリプトを走らせるにはbashが一番だったりする。 しかしlinux系コマンドでよくある ./exe.sh -i hoge.txt -o out.txt -a みたいなオプションを自分で1から実装するのはつらい。そこでgetop…

ethtoolでネットワークのリンク速度を設定する

Linuxで1GのNICから10GのNICへファイルのコピーをしてたが、めっちゃ遅い。どうもネットワークデバイスが意図しないリンク速度として認識してしまってるらしい。いわゆるオートネゴシエーションが悪さしてるっぽかったので、無効化して手動でリンク速度を設…

gmailへメールが送信できなくなったときはメールヘッダーを見ろ

症状 1つのサーバーからSMTPでGmailのメールアドレスへメールを送信していたが、いつの日からかメールが届かなかったり、メールが数時間レベルで遅延するようになった。心当たりなかったので、原因がよくわからなかったが、どうもGmail側にスパム認定(Gmai…

LinuxでもCrystalDiskMarkぽいディスクベンチマークしたい

fioとは fioと呼ばれるLinux用のディスクI/Oベンチマークツール(ディスク性能計測ツール)が有る。すげー適当に言うとCrystalDiskMarkのLinux版である。 このツール、hdparmコマンドやddコマンドで性能を測定するのに比べてかなり高機能なのだが、いかんせん…

Squidのバージョン4が安定版になっていた話

みんなのプロキシサーバーSquidが長いこと3.xが安定版だったが、今月の2日についにバージョン4が正式版としてリリースされていた。(変更履歴) Squid-4 - Squid Web Proxy Wiki 一方今までの3は非推奨(DEPRECATED)扱いに 一体何が変わったのか、wiki見…

Tinker BoardでIP固定に設定する方法

そういえばTinker Boardを買ったきりで全然起動すらしていなかった() thr3a.hatenablog.com 流石にもったいないのでセットアップしたメモ 環境 Tinker BoardのDebianのOS 20180622-tinker-board-linaro-stretch-alip-v2.0.7.img 方法 そもそもネットワーク…

locateコマンドでディスク全体から一発検索

例えば「libjpeg.soを含むファイルをディスク全体から検索したい」ってときは今までfindコマンド使っていた find / -name "*libjpeg.so*" /usr/lib/x86_64-linux-gnu/libjpeg.so.8 /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/x86_64-linux-gnu/libjpeg.…

H.264対応のffmpegをLinux環境でビルドする

FFmpegは言わずとしれた動画音声変換用アプリケーションだが、ビルドが結構煩雑である。 ビルド済みのバイナリダウンロードしてそれつかえばええやんって話だが、ライセンス的な関係上、H.264のコーデックを使いたい場合は自分でビルドしなければならない っ…

ディスクが壊れてGive root password for maintenanceで起動しない

環境 CentOS 6 症状 ディスクが逝った。Linuxたんは賢いので、故障を検知すると自動でRead Onlyになる。 今回逝ったディスクはrootディスクじゃない別のデータ用ディスク。だからそのディスクだけ交換して再起動すればめでたしめでたし、かと思ったらそもそ…

Ubuntu 18.04以降でDNSサーバーを変更する方法

めっちゃハマった 環境 Ubuntu 17.04以降 ネームサーバーを変更できない問題 DNSの変更は/etc/resolv.conf、という時代は古い。Ubuntu 17.04以降ではsystemd-resolvedがデフォルトで動作しているため、/etc/resolv.confを書き換えても変更されない そもそも/…

DDR4&UEFIのPCでメモリテスト

Memtest86+が死んでる件について メモリテストの定番アプリケーションことMemtest86+ しかし最近は更新が滞っていて、最終更新が2013年(2018年6月29日現在) 当然最新のDDR4やUEFIの規格に対応できているはずもなく、上手く動作しない。そこでMemTest86でや…

nginxの多段プロキシ構成でIP制限を行いたい

環境 nginxのサーバーが2台あったとして ユーザー - インターネット - [nginx1] - [nginx2] - [rails] みたいな構成になっていたとき、nginx1ではなくnginx2側(バックエンド)で特定のIPのみ許可して、他のIPを弾きたい。 設定 例えば8.8.8.8からのアクセス…

MySQLで取得した結果をCSVに出力する

自分用メモ INTO OUTFILEを使う場合 MySQLサーバーがオンプレミスの場合はこっち SELECT * FROM users INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; スクリプト経由で出力する場合 クラウドのサーバーだと権限的にI…

cuDNNのバージョン確認するコマンド

悲しいかな、nvcc --versionで取得できるバージョンはCUDAのみでこれではcuDNNのバージョンは取得できない 方法1 cudnn.hを見る # cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 以下はcuDNN 6.0の場合(CUDNN_MAJOR=6 CUDNN_MINOR=0なので…

iodineでVPN over DNSなVPN環境を構築する

iodineとは iodineとはDNSパケットを利用してVPN通信を実現するVPN over DNSのネットワークシステムを実現するアプリケーション。 普通のVPNでええやんって思うかもしれないけど、IPsecのVPNではファイアウォールの規制が厳しい環境だと使えないかもしれない…

Ubuntuの/bin/shはbashではなくdashとかやつ

めっちゃハマった。。 どういうこと # ll /bin/sh lrwxrwxrwx 1 root root 4 Feb 18 2016 /bin/sh -> dash* は????????? dash is ashとかいうBourne互換シェルのDebian版 だからd+ashでdash 厄介なのがBourne互換シェルを唄っているくせにbash等の…

CentOSでcan't create Thread: Resource temporarily unavailable対策

参考リンク Linux におけるスレッド数の上限 UNIX ulimit Settings — MongoDB Manual 3.6 環境 CentOS6 ある日いきなりSSH接続ができなくなった ログ見ると「ThreadError: can't create Thread: Resource temporarily unavailable」。どうもスレッド数が制限…

メインデスクトップPCのOSをUbuntuに変更した

今までWindows使ってきたけどアップデート面倒だしってことでなんとなく変えた 変更先 Ubuntu MATE 18.04 まだBeta版だが実質候補版?の立ち位置 いまのところバグっぽいバグには遭遇していない すごかったのが特にローカライズされてないバージョン入れたの…

Google Text To Speech APIをcurlで実行してみる

Mac or Linux環境で動く 必要なもの curl jq macならbrew install jq mp3が再生できるやつ macならbrew install mpg123 GoogleのAPIキー GCPの管理画面->認証情報から「認証情報を作成」→「APIキー」を選択 生成されたキーを控えておく コード #!/bin/bash t…

Imagemagickで画像の上下左右に余白を追加する

言わずと知れた最強画像処理コマンドImagemagickのネタ やりたいこと 画像の上下左右に白の余白を追加したい 最終的には画像の解像度は変更せずに余白を追加したい(つまりオリジナルの部分は小さくなる 失敗例 「imagemagick 余白」で検索すると余白追加に…

Ubuntu/CentOSでSassCをインストールする

SassCとは sassのC++実装版 実行速度がめちゃくちゃ速い めちゃくちゃ速い 環境 Ubuntu 16.04 CentOS 6 ただしデフォルトのgccのバージョンが古いので新しくする必要があるので以下のURLを参考 thr3a.hatenablog.com インストール方法 公式ドキュメントを参…

cronでnohupバックグラウンド処理を実行したい

やりたいこと SSHでサーバーにログインして以下のようなコマンドを叩くとする。 nohup some_command & するとnohupコマンドにより、SSHを切断してもsome_commandの処理はバックグラウンドで動き続ける。 これをcronで自動実行したい かきかた そのまま書くの…