動かざることバグの如し

近づきたいよ 君の理想に

linux

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で自動実行したい かきかた そのまま書くの…

Gitlabを8から10にアップデートする

gitlabのオープンソース版の方を8.9.1から10.1 にアップデートさせた手順メモ 環境 CentOS 6 omnibus-gitlab経由でインストールされた アップデートの流れ マイナーバージョンのアップデートであればyum install gitlab-ceすれば勝手に新しいパッケージがイ…

Vagrantのディスク容量を増やす

環境 vagrant 2 以前のバージョンでも同様にいける 使用したbox: bento/ubuntu-16.04 仮想ハードディスクの拡張 まずはゲストOS側(仮想側)で確認。デフォルトだと38GがMAXである。(/dev/mapper/vagrant--vg-rootの項目)ログとか貯まるとすぐに溢れそう vag…

初期化せずにHDDのパーティンションテーブルをGPTに変換する

いやー久々にハマった 状況 今まで2TBのHDDで運用してきたが、単価も安くなってきたので今回4TBのHDDを購入。例のクローン機能を使って無事にコピーまではできたが、いざディスクの拡張でコケる。 パーティションを 1.82 TiB から 3.64 TiB に拡大する 00:…

爆速でChrome対応オレオレ証明書を作成する

目指す証明書 Chrome 58以降にも対応 ワイルドカード対応 検証環境 Ubuntu 16.04(多分どのOSでも行ける やりかた 面倒な設定など無い。5秒で作れる ここでは仮に*.turai.workのオレオレ証明書を生成する方法を示す。 秘密鍵の作成 openssl genrsa 2048 > se…

MySQLのバイナリログを安全に削除する方法

バイナリログは ファイルで言う/var/lib/mysql/mysql-bin*で、いわゆるDBの更新ログ これをもとにリカバリとかできるのだが、今回不必要なDBサーバーにバイナリログを書き出す設定にしてしまったので削除したいというメモ 直接削除するのはダメなの? rm -rf…

Linuxで今すぐNTPサーバーと時刻同期する方法

毎回忘れるのでメモ service ntpd stop <-- まずntpdを停止する。 ntpd -qg <-- 時刻合わせをする service ntpd start <-- ntpdを再開する。 hwclock -w ntpq -p <-- 一応稼働状況確認 おk、もう忘れない(フラグ

Linuxコマンドで文字列から前後の空白を除去する

やりたいこと 例えば「 hello world 」という前後と文中に半角スペースがある文字列を「hello world」にしたい 方法1 sed 置き換えの万人、sedコマンドを使う。 $echo " hello world " | sed 's/^[[:blank:]]*//' hello world が、いくらなんでも半角スペー…

Linuxでディスクに負荷をかけてるプロセスを特定したい

iotopコマンドの場合 rootないしはsudoが使える場合はこれが便利 名前の通りtopのごとく使える # iotop Total DISK READ : 0.00 B/s | Total DISK WRITE : 389.38 K/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 462.63 K/s TID PRIO USER DISK READ …

railsでpumaをkillできないときの対処

環境 rails 5 症状 pkill puma しても死ななかった これで死ぬはず pkill -9 puma が死なないだと??????? 結局以下で死んだ pkill -9 -f puma puma強すぎでしょ