揮発性のメモ2

http://d.hatena.ne.jp/iww/

Linux

ファイルを新規作成するとき、仮ファイルを作って書ききってからリネームする

ファイルを新規作成するとき、仮ファイルを作って書ききってからリネームすると、 書いてる途中のファイルを「お、あるある」とか言って読まれないので比較的安全 #include <stdio.h> #include <stdlib.h> // mkstemp #include <unistd.h> // write int main() { // 仮ファイルを作って本</unistd.h></stdlib.h></stdio.h>…

rsyslogで、ログのフォーマットを設定する

rsyslog.conf にログフォーマットを追加したい大会 2022-04-06 15:06:21 foobarbaz(172.16.0.50) INFO<6> UNKO_APP[28204] うんこー! とりあえずこんな感じにするには # /etc/rsyslog.d/hoge.conf # ログファイル名テンプレート $template HOGE_LOGNAME, "/…

PHPから、UDPでsyslogを投げる

#!/usr/bin/php -q

rsyslogで、シスログサーバを立てる

syslogで飛んできたやつを /var/log/hoge/IPアドレス.log に保存したい大会 /etc/rsyslog.d/hoge.conf $ModLoad imudp $UDPServerRun 514 $template HOGE_LOGNAME, "/var/log/hoge/%fromhost-ip%.log" :fromhost-ip, startswith, "172.16." -?HOGE_LOGNAME &…

VirtualBoxでの書込みエラー

Feb 14 11:45:21 localhost kernel: [924038.432371] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen Feb 14 11:45:21 localhost kernel: [924038.434353] ata1.00: failed command: WRITE DMA EXTみたいなエラーが1分おきに出て、ファ…

bashで100万回ループする

atmarkit.itmedia.co.jp #!/bin/bash for ((i=0; i<1000000; i++)); do echo $i done この書き方ぜんぜん知らなかった。 超直感的じゃん。 dashでは使えない

Debianで、ファイルがどのパッケージに含まれているか検索する

apt-file をつかう $ apt-file search fstrim libguestfs-gobject-dev: /usr/include/guestfs-gobject/optargs-fstrim.h manpages-de: /usr/share/man/de/man8/fstrim.8.gz manpages-fr-extra: /usr/share/man/fr/man8/fstrim.8.gz util-linux: /sbin/fstrim…

opensslで、サーバの証明書の情報を確認する

openssl s_client コマンドでウェブサーバーの SSL/TLS 対応状況を診断する – ラボラジアン opensslコマンドで証明書情報を確認したい | GMOグローバルサイン サポート 証明書がちゃんと登録できたか、期限はいつだっけか、をパッと見たいときに opensslコマ…

FTPのログの読み方

/var/log/xferlog xferlog - ファイルのフォーマットと規約の説明 - Linux コマンド集 一覧表

bashで、動作中にプログラムを書き換えると反映されるやつ

bash は、シェルスクリプトの実行中に適時シェルスクリプトを読み込みます。 https://www.iimc.kyoto-u.ac.jp/services/comp/pdf/file_loss_insident_20211228.pdf なにそれこっわ。 そんな仕様知らなかった #!/bin/bash echo start sleep 30 このプログラム…

CLionで WEXITSTATUS が未定義扱いになる

CLionで WEXITSTATUS がエラーになるのを 回避?する linuxjm.osdn.jp https://youtrack.jetbrains.com/issue/CPP-1472 今まで MinGWの開発環境を指定してたけど、なんとなく Cygwin のほうに切り替えたらマクロが認識されるようになった。

lpadmin でプリンタ追加でエラー

プリンタ追加でPPDファイルのインストールとかしたいときにエラーになったやつ # lpadmin -p HOGE-21 -P sample_HOGE_21.ppd -v file:/dev/HOGE_pipe -E lpadmin: Unable to copy PPD file - Read-only file systemRead-only file system とか言ってくるけど…

Raspberry pi で静的にIPアドレスを設定する

dhcpcd.conf の簡単な書き方の話 静的なIPアドレスを設定したいときは次のように書く interface eth0 static ip_address=192.168.10.101/24 static routers=192.168.10.1 static domain_name_servers=192.168.10.1 8.8.8.8 DHCPサーバが無いときにだけ静的な…

wpa_supplicant.conf

/etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=JP network={ ssid="ACCESSSSIDacna" psk="hogehoge" disabled=1 } network={ ssid="ACCESSSSIDgbn" psk="hogehoge" } network=…

Linuxで、IPアドレスとMACアドレスの一覧を出すコマンド

arp-scan をつかう使い方 arp-scan -I デバイス 範囲 -I デバイス eth0 とか。 省略すると一番最初に見つけたNICになる 範囲 192.168.0.0/24 みたいに指定する 省略すると、NICのネットワークアドレスを自動的に使う -l 範囲にNICのネットワークアドレスを自…

Linuxで、ルートパーティションのサイズを拡張する

仮想マシンで .vdi のサイズを大きくしたので、ファイルシステムも大きくする /dev/sda 64GB /dev/sda1 / ext4 30GB ⇒ 62GB /dev/sda5 swap 2GB とりあえず作業はDebian10でおこなった次の手順でなんとかする swapを無効化 パーティションサイズを拡張 ファ…

Linuxで、インターフェースごとにIPv6を無効化する

一部のインターフェース、 eth2 とかのIPv6だけオフにしたいsysctlコマンドを使う sysctl net.ipv6.conf.eth2.disable_ipv6=1 net.ipv6.conf.eth2.disable_ipv6 こんな感じで eth2 のところに変更したいNICの名前を指定するちゃんと動いたら、/etc/sysctl.d/…

SoftEtherのUDP待ち受けポート

SoftEtherでなんかUDPポートで待ち受けがあるけど、よくわかってない # netstat -n4upl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name ★よくわからないポート (ランダム) udp 0 0 …

Linuxで、バッテリー情報を見る

とりあえず、/sys/class/power_supply/BATA/uevent を見ると良いらしい。 BATA の部分は環境によって異なるらしい。superuser.com # cat /sys/class/power_supply/BATA/uevent POWER_SUPPLY_NAME=BATA POWER_SUPPLY_STATUS=Discharging POWER_SUPPLY_PRESENT…

Linuxで、ファイル名を一括変更する

hoge-XXXX.txt を piyo-XXXX.txt に一括変換したい。 forでとかxargsでとか、そんなんいちいちやってらんねーよ renameコマンドを使う rename 変更前文字列 変更後文字列 対象ファイル rename hoge piyo *.txtlinuxjm.osdn.jp 対象ファイルのファイル名に変…

systemdで、自作ユニットファイルをなんかうまく登録する

systemdで自作ユニットファイルをなんかうまく登録する方法/etc/systemd/system/ に 自分で直接 hoge.service を置くのはおそらく行儀が悪い。有効化するときは systemctl enable hoge.service を実行すればいいが、 無効化するときに systemctl disable hog…

rebootコマンドはsystemctlへのシンボリックリンク

イマドキのrebootコマンドはsystemctlへのシンボリックリンクになってた。知らなかった Debian 10(buster) # which reboot /usr/sbin/reboot # file /usr/sbin/reboot /usr/sbin/reboot: symbolic link to /bin/systemctl # ls -l /usr/sbin/reboot lrwxrwxr…

Debianで、メタパッケージの情報を見る

# apt search ssh (中略) ssh/stable,now 1:7.9p1-10+deb10u2 all [インストール済み] secure shell クライアントおよびサーバ (メタパッケージ)このメタパッケージをインストールしたら結局何がインストールされるん? というとき apt show で見ることが…

ファイルサイズが大きいファイルの一覧を作る

ファイルサイズが大きいファイル一覧の上位10件を表示 # find / -xdev -type f | xargs du -x -h 2>/dev/null | sort -hr | head -n 10 42M /usr/lib/arm-linux-gnueabihf/libLLVM-6.0.so.1 36M /var/cache/ti-pru-cgt-installer/ti_cgt_pru_2.1.5_armlinuxa…

nginxでリバースプロキシの設定

VPN越しにルータのWEB管理画面を参照したかったので、nginxでリバースプロキシの設定をした +----+ VPN +------+ +--------+ | PC +----------------+ 装置 +----------------+ ルータ | +----+ tap +------+ eth1 +--------+ 192.168.36.x 192.168.36.5 192…

bashで whileの中でevalを使う

for文で出来る for x in A=hoge B=piyo; do eval $x done echo A=$A echo B=$B A=hogeA B=hogeBwhile文でこう書くとアウト echo -e "A=hoge\nB=piyo" | while read x; do eval $x done A= B=なぜなら、パイプを使っているから。 サブシェルになるので変数は…

systemdでジャーナルログを止める

非力なボードではジャーナルが張り切ると死ぬほど遅くなるので、止める/etc/systemd/journal.conf で Storage=none とやって再起動man journald.conf の訳 - kandamotohiro journal ログをきちんと記録・保存する - Qiita

topコマンドで、コマンドラインを全部表示する

topコマンドで、コマンドラインを表示できるだけ全部表示する。端末の横幅を広げてても topコマンドは80文字くらいで出力を切っちゃう c キーを押すと パスとか引数とかも表示してくれる。 超便利 topコマンドを起動するときに -c オプションをつけてもいいM…

dmesgのuptime部分を日付にする 2

dmesg の時間表記を日時に変換するやつ #!/usr/bin/perl my $btime = `grep btime /proc/stat|cut -b7-`; open(my $fh, "dmesg |") or die("open"); while(<$fh>){ if( $_ =~ m/^\[\s*(\d+)\.\d*\] (.*)$/ ){ my $time = $1; my $text = $2; my ($S,$M,$H,$d…

certbotで let's encryptの証明書を 取得する

Version0.27とか0.28のときのcertbot /lib/systemd/system/certbot.service [Unit] Description=Certbot Documentation=file:///usr/share/doc/python-certbot-doc/html/index.html Documentation=https://letsencrypt.readthedocs.io/en/latest/ [Service] …