揮発性のメモ2

知識をメモ書きしておく

Linux

ディレクトリのシンボリックリンクを作成する

ディレクトリのシンボリックリンクを作成する。 コマンドを何回実行してもOKなように冪等性を持たせる。 ln -sfT /hoge/piyo /data -s シンボリックリンクを作成する -f もうすでにあるときは削除してから実施する -T シンボリックリンクをファイルのように…

busyboxのntpd で即座に時刻を合わせる

busyboxのntpd を ntpdate みたいに使う方法 ntpd -q -p 192.168.0.1 ランキング参加中Linux

サブドメインを検索する

ランキング参加中Linuxhatena.ne.jp のほかに a.hatena.ne.jp とか b.hatena.ne.jp とかあるやつを調べるコマンドdnsrecon や dnsenum を使うと良いらしい。 dnsrecon はなんだかちゃんと動かなかったので、 dnsenum を試した。 インストール apt install dn…

dropbearで、サーバのfingerprintが信用ならなくなったとき

雑に組込み開発をおこなっていると良く出てくるエラー ルートイメージを違うマシンに丸コピーしていると遭遇する # scp hoge.txt 192.168.101.82:/tmp/ /usr/bin/dbclient: Connection to root@192.168.101.82:22 exited: ssh-rsa host key mismatch for 192…

findで 隠しファイルを 除外する

$ find . -type f ./.gitignore ./.idea/.gitignore ./.idea/active-tab-highlighter-v2.xml (中略) ./bin/c_mailcheck.inc ./bin/c_mysql.inc ./readme.txt ./www/kanri/base.css ./www/kanri/body.css (後略) .で始まるファイルやディレクトリを除外したい…

tcpdumpで、ファイルに保存されない

ランキング参加中プログラミングランキング参加中Linux tcpdump -i eth0 -X -nn -s0 udp port 12345 -w /tmp/hoge.captcpdumpでこう書いたとき、ファイルに保存されないことがある。 ある程度溜まると、まとめて4096バイトずつ保存される。つまり、これはバ…

走行中のプロセスの標準出力を横取りする方法4

走行中のプロセスの標準出力を横取りする方法 - 揮発性のメモ2久しぶりに他のプロセスの標準エラー出力を覗き見したくなった straceで日本語がエンコードされるのを抑止できなかったので、それにも対処 strace -p $(pgrep hogehoge) -e write -s 4096 2>&1 …

Linuxで、メモリの種類を調べる

このサーバってメモリはDDR3だっけ?DDR4だっけ? というのを調べる。dmidecodeコマンドを使う dmidecode --type memory # dmidecode --type memory # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 3.0.0 present. Handle 0x0010, DMI type 16, 23…

コマンドでソフトウェアRAIDの進捗状況を見る

mdXXX_resync がCPUをいっぱい使ってて大変そうだけど、同期あとどのくらいかかるのかな というのを調べる。 専用コマンドがあるわけではなく、proc見れば済む話だった $ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [r…

bashで、今実行しているスクリプトのディレクトリを取得する

ランキング参加中Linuxランキング参加中プログラミング シンプルな書き方 SH_DIR=$(realpath $(dirname $0)) 引数 $0 にはスクリプト名が入っているので、ディレクトリを切り出す 相対パスで実行しているときは 相対パス名が入るので realpath で正規化する …

VirtualBoxで fstrimコマンドを使う

ランキング参加中Linux fstrimコマンドとは zerofreeではなぜダメか VirtualBoxで使えるようにする 対応状況の確認 fstabの編集 fstrimコマンドの使い方 でかいファイル、でかいディレクトリの見つけ方 fstrimコマンドとは fstrimコマンドは SSDなどに使用し…

wgetでPUTする

apacheの設定でこうすると、PUTメソッドはどこのディレクトリだろうとなんでもかんでも /test/put.php に飛んでくる。 <Directory /> Script PUT /test/put.php </Directory> ※このとき、URL書き換えとかしてるわけでは無いので リクエストURIは もとのまま飛んでくる wgetでテストす…

PHPでBASIC認証を受け付ける。 wgetでテストする。

ランキング参加中プログラミングランキング参加中PHPこれの焼き直し www.php.net BASIC認証の基本的な動き 基本的に、BASIC認証は2回アクセスが来る。 1回目は認証なし。サーバは一旦 401 で突っ返す。 2回目でBASIC認証が来る。BASIC認証ではリクエストヘ…

メッセージキューを使ってるのに /dev/mqueue が見当たらないとき

ランキング参加中プログラミングランキング参加中LinuxPOSIXメッセージキューは 仮想ファイルシステム mqueueの中で動作する。 /dev/mqueue というディレクトリは あっても無くてもメッセージキューはただしく動作する。 無くても困らないので、たまに無いと…

NFS4でマウントする

NFS4だと rpcbind を使わなくて済む。 やったぜ ポートマッパー大嫌い サーバ側 NFS3とほぼ変わりない。 fsid=0 が新機能 /etc/exportfs に次のように書く /data 192.168.0.0/24(rw,async,no_acl,no_root_squash,no_subtree_check,insecure,fsid=0) オプショ…

TeraTermで、ls実行時に バックアップファイルが表示されない2

TeraTermで、ls実行時に バックアップファイルが表示されない - 揮発性のメモ2 Debianには /etc/DIR_COLORS が無かった。そもそもこの問題に直面するたびに設定を直すのも面倒なので、TeraTerm側で対処する。 具体的には、「ウィンドウの設定」で 16色モー…

Linuxで、SDカードにVFATのパーティションを作成する

毎回毎回この画面で FATってどれだっけ と悩むのでメモ 答えは c~32MB のときは 1:FAT12 32M~2GB のときは 6:FAT16 2GB~8GB のときは b:FAT32 8GB~ のときは c:FAT32 (LBA)ただまあ大は小を兼ねるので、四の五の言わずに c:FAT32 (LBA) でいい SDカード…

Apacheで、リライト機能を使う

/etc/httpd/conf.d/unko.conf # http://192.168.0.2/unko/photo/hogehoge.jpg # を、Apacheのrewrite機能により 次のように変換する # /unko/photo/hogehoge.jpg # ⇒ /unko/getphoto.php?filename=hogehoge.jpg Alias "/unko" "/opt/unko/www" <Directory "/opt/unko/www"> AllowOverrid</directory>…

tcpdumpで、ポート番号が名前解決されてしまうのを防ぐ

tcpdumpで名前解決をさせないオプション -n を使用しても、ホスト名はIPアドレスのままになるが ポート番号がサービス名になってしまう # tcpdump -n -i enp0s3 portrange 8100-8999 ... 11:12:35.970398 IP 192.168.101.78.41890 > 192.168.101.79.xprint-s…

GPIOのデバイスファイルから、値を連続して読む

GPIO sysfs で現在値を読むとき、普通はopenしてreadするとEOFに到達する (なので、catコマンドで普通に読める) $ cat /sys/class/gpio/gpio66/value 1 つまり、Cでopenしてreadするときは 2回読めない。 一般的には、lseekで先頭に戻してやる int buf[8];…

Cで、ミリ秒スリープする

#include <stdio.h> #include <time.h> #include <signal.h> #include <errno.h> /// ちゃんとミリ秒寝る関数 int sleep_msec(long long msec) { struct timespec ts; ts.tv_sec = msec/1000; ts.tv_nsec = (msec%1000)*1000000; int result; for(;;){ result = nanosleep(&ts, &ts); if(result==</errno.h></signal.h></time.h></stdio.h>…

TeraTermで、ls実行時に バックアップファイルが表示されない

lsで見たら、ファイル名が無いファイルがあった。 どういうことかと思ったが、テキストを選択するとファイル名っぽいのがあるので、表示色がおかしくなっているだけだったとわかった。 暫定的に、DIR_COLORSを編集し、無理やり見えるようにした /etc/DIR_COL…

sem_openで、Permission denied になる

セマフォを使ってロックをするプログラム #include <fcntl.h> // O_CREAT #include <semaphore.h> // sem_wait #include <stdio.h> // printf #include <unistd.h> // sleep int main() { sem_t *sem = sem_open("/unko", O_CREAT, 0666, 1); // ★パーミッション全開のつもり if(sem==NULL){ perror("s</unistd.h></stdio.h></semaphore.h></fcntl.h>…

viで設定ファイルが読まれないとき

vi が vim.tiny のとき、設定ファイルは読まれない vim.tiny は設定ファイルを読まない。 /etc/vim/vimrc ですら読まない 対策:vim.tiny を捨てて vim をインストールする

clock_gettimeで指定するクロックの分解能を表示する

時刻をミリ秒まで欲しいんだけど、CLOCK_REALTIME_COARSE って精度十分だっけかなぁ というのを調べる話 clock_getres() で、どれだけ細かく時間が測定できるかがわかる #include <time.h> #include <stdio.h> int main() { struct timespec ts; clock_getres(CLOCK_MONOTONIC</stdio.h></time.h>…

hexdumpの代わり2

Linuxでバイナリファイルをダンプするツール od od 1バイトごとに表示、省略なし od 4バイトごとに表示、省略あり xxd xxd 1バイトごとに表示、省略なし xxd 4バイトごとに表示、省略あり hexdump hexdump 1バイトごとに表示、省略なし hexdump 4バイトごと…

EUCに無い文字2

①②③、㌔㍉、㎞㎜ などは EUCJPに無い文字が EUCJP-MS, EUCJP-WIN にはある。 これらの文字を含んだテキストは iconv で変換可能 元テキスト EUCJP⇒UTF8変換 iconv -c -f EUCJP -t utf8 /tmp/kishu.txt EUCJP-WIN⇒UTF8変換 iconv -c -f EUCJP-WIN -t utf8 /tm…

gccで、スレッド間で同じメモリを同時にアクセスしてる人を探してぶっ殺したい

gccで、スレッド間で同じメモリを同時にアクセスしてる人を探してぶっ殺したい。そのためにはgccの TSAN(Thread Sanitizer)機能を使う -fsanitize=thread ソース #include <pthread.h> #include <stdio.h> volatile long long A=0; void *gettidtest( void *arg ) { int number</stdio.h></pthread.h>…

gccで、どんな最適化がかかっているかを見る

gcc -Q --help=optimizersこのコマンドで、どんなオプティマイズオプションがあるか、どれが有効になっているか を確認できる $ gcc -Q --help=optimizers The following options control optimizations: -O<number> -Ofast -Og -Os -Oz -faggressive-loop-optimizat</number>…

gccで、配列の範囲を超えてアクセスしてる人を探してぶっ殺したい

gccで、配列の範囲を超えてアクセスしてる人を探してぶっ殺したい。 そのためにはgccの ASAN(Address Sanitizer)機能を使う -fsanitize=address ソース コンパイル 実行結果 -fsanitize=bounds コンパイル 実行結果 コアダンプの設定 実行結果 処理能力 参…