揮発性のメモ2

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

hoge

Linux

gzipで、ファイル名やタイムスタンプを保持させない

gzipはファイルを圧縮するとき、デフォルトではファイル名と時刻を中に保存する。 なので、たとえ空のファイルであってもファイル名分だけ無駄が出来る。 -rw-r--r-- 1 hoge hoge 25 12月 6 13:17 piyo.gzオプションで -n を付ければ名前を保存しなくなる。 …

所有者が自分じゃないファイルを探す

find . ! -user hoge -ls 一括で自分のものにするには su - find . ! -user hoge | xargs chown hoge

dhparam.pem を作成する

次のコマンドで作成する openssl dhparam -out /tmp/dhparam.pem 2048

softether

インストールは手でおこなう ダウンロード SoftEther ダウンロード センター ここから .tar.gz をダウンロードする。 rtm (Release To Manufacturing) が安定版のこと。 インストール 7.3 Linux へのインストールと初期設定 - SoftEther VPN プロジェクト 基…

ufw

状態表示 numbered を付けると通し番号も出る(deleteとかで使う) # ufw status Status: inactive# ufw status numbered Status: active To Action From -- ------ ---- [ 1] 8228 ALLOW IN Anywhere [ 2] 80 ALLOW IN Anywhere [ 3] 443 ALLOW IN Anywhere…

tcpdumpで、サーバのログを取得する

tcpdumpで、ポート80のサーバのログを保存したいけど ポート80のクライアントのログは保存したくない。 tcpdump tcp port 80 とだけやると ポート80絡みをすべて取得するため、このサーバがwget等でほかのサーバへアクセスしたときまでログに採ってしまう。 …

digで、なんかANSER SECTIONがないとき

$ dig yahoo.co.jp ; <<>> DiG 9.10.3-P4-Debian <<>> yahoo.co.jp ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: FORMERR, id: 27249 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: r…

systemdのKillMode

[Service] ExecStart=/usr/local/bin/hoge KillMode=control-group man.kusakata.com KillMode は stopのときにプロセスをどう殺すかを指定する変数。 control-group ExecStartで起動したプログラムと、そのプロセスグループを皆殺しにする。デフォルト proc…

Debianで、パッケージの「インストールサイズ」を確認する方法

controlファイルにインストール後のサイズが書いてある dpkg --info でわかる。 単位はKB # dpkg --info mongodb-clients_3.2.11-2+deb9u1_armhf.deb 中略 Installed-Size: 44822 www.debian.org www.debian.org

cp -ax の進捗を見る

大量のファイルをコピーしてるとき、今何個コピーしたとか何秒経ったかを表示する。あらかじめファイルの数を数えておき、何個中何個コピーしたかを毎秒表示する。 あと経過時間もついでに表示する。 time cp -ax -v /mnt/ test/ | perl -nE 'BEGIN{$|=1; $z…

昨日編集したファイルだけをまとめて圧縮する

# 手抜き版 find hoge/ -type f -mtime -1 | tar cvf hoge_yesterday.tar.gz # ちゃんと動く版 find hoge/ -type f -mtime -1 -print0 | tar cvf hoge_yesterday.tar.gz --null -T - findの結果をtarでアーカイブしたい - 浦安市在住+デジカメ

再帰的にファイル内の文字列を検索して置換する

http://hoge.example.com を https://hoge.example.com に置き換えるやつ # findでやる方法 find . -type f | xargs sed -e 's/http:\/\/hoge\.example\.com/https:\/\/hoge.example.com/m' -i # grepでやる方法 grep -rIl http://hoge.example.com . | xarg…

vimで無用なインデントをさせない

vimで勝手にインデントしてしまう小さな親切を無効化する :set noautoindent :set nosmartindent :set nocindent :set indentexpr= :set paste noautoindent 普通のインデントを無効化 nosmartindent 賢いインデントを無効化 nocindent C言語用インデントを…

aptで出力結果を編集することはできない

# apt search linux-headers | grep 4.9.82 WARNING: apt does not have a stable CLI interface. Use with caution in scripts. 注意:aptはちゃんとしたCLIを持ってないからスクリプトで使うときは気を付けてね apt-cache search とか使う

TeraTermで、シリアルコンソールの画面サイズを変更したとき

TeratermでシリアルコンソールでLinuxに接続しているとき、画面サイズの変更は sttyコマンドでおこなう # stty size 24 80 # stty rows 48 columns 160 # stty size 48 160 linuxjm.osdn.jp桁数は割とすぐ反映されるけど、行数はなんか反映されないことがあ…

udevでバックグラウンドで動くプログラムを起動する 3

USB機器を挿した契機で、ちょっと時間のかかるプログラムをバックグラウンドで起動したい。 また、抜けたら抜けたで何か起動したい。 /etc/udev/rules.d/99-local-usb.rules # USB機器が刺さったらなんかする ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}…

udevでバックグラウンドで動くプログラムを起動する 2

USB機器を挿した契機で、ちょっと時間のかかるプログラムをバックグラウンドで起動したい。 そのまま呼ぶと一瞬で殺されるので、systemdを使って起動する /etc/udev/rules.d/99-local-usb.rules # USB機器が刺さったらなんかする #ACTION=="add" , SUBSYSTEM…

udevでバックグラウンドで動くプログラムを起動する

USB機器を挿した契機で、ちょっと時間のかかるプログラムをバックグラウンドで起動したい。 ちょっと前までは nohup とか付けたプログラムを2段ロケットで呼べば動いていたけど、最近(Debianならstretchから?)ではdisownだろうがnohupだろうが 1秒も経た…

[: missing ]

/usr/local/bin/hoge: 8: [: missing ] というエラーが出て、その8行目は [ -z "$ADDR"] || ADDR="HOGEHOGE" という塩梅だった。 "[" が文法じゃなくて内部コマンドだということを失念していたため、[ ] を単なる飾りとして見ていて、: missing ってなんだろ…

grepでファイルシステムをまたがずに検索する

普通に / からgrepで全ファイル検索しようとすると、/sysや/procまでたどるので困る。 なので、同一ファイルシステム内だけで検索したい (findなら -xdevが、cpなら -x がある) unix.stackexchange.com find / -xdev -type f -print0 | xargs -0 grep -I -…

tmpfsでオーナーを指定する

wiki.archlinux.org # ls -ld /hoge drwxrwxrwx 2 root root 4096 May 22 2018 /hoge # mount -o uid=www-data,mode=700 -t tmpfs tmpfs /hoge # ls -ld /hoge drwx------ 2 www-data root 40 Jun 29 10:00 /hoge tmpfsは、オプションでパーミッションや所有…

diffの結果を使ってdiffしやすくするやつ

diff -rq の出力結果を見ながら、さらに差分とったりコピーしたりをよくするんだけど Files /tmp/hoge/www/test.html and /opt/piyo/www/test.html differ Only in /opt/piyo/www: test.html.bak みたいに Files ○○ and △△ differ とか余計な文字列が入って…

iptablesで一時的にDROPとか設定する

なんかネットワークが切れたとかの試験をするとき用 # DROP追加 iptables -I INPUT 1 -p tcp --dport 9999 -j DROP # DROP削除 iptables -D INPUT 1

スーパーブロックの修復

壊れたSDのイメージを吸い出して、同じくらいのサイズの別SDに丸コピーして調査を # fsck -n /dev/sda2 fsck from util-linux 2.29.2 e2fsck 1.43.4 (31-Jan-2017) Warning: skipping journal recovery because doing a read-only filesystem check. The fil…

ファイルをぜんぶコピーする

ルートファイルシステムの全ファイルを USBメモリとかにコピーしたい。 でもそのままだと /proc だの /sys だのまでコピーされるので、ファイルシステムをまたがないオプション -x を使う。 cp -ax /. /mnt/ /. の . は別に要らないけど、気分の問題なので付…

RTO_MINの変更

serverfault.com ipコマンドで変更可能らしい # ip route show default via 172.16.0.1 dev enp0s3 onlink 172.16.0.0/16 dev enp0s3 proto kernel scope link src 172.16.101.57 # ip route change 172.16.0.0/16 dev enp0s3 rto_min 3s # ip route show de…

sshdでchrootでsftp

CentOS の OpenSSH で chroot を設定する # chroot用設定 Subsystem sftp internal-sftp Match User hoge ChrootDirectory /data ForceCommand internal-sftp WinSCPとかでsftpアクセスすると、/data が / として見えるようになる。 ただし、/data はrootユ…

呼び出しているライブラリと関数の一覧

nmでシンボルを抜き出して、フィルタをかけるMan page of nm nm -C hogehoge C C++ の関数名を可読にする nm コマンド – オブジェクトファイルのシンボル情報を表示する | Linuxコマンド.NET 呼び出してる関数⇒自分じゃ定義していない関数⇒未定義シンボル と…

fatal: protocol error: expected old/new/ref, got 'shallow

fatal: protocol error: expected old/new/ref, got 'shallow xxxxxxxxx' fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedlyシャローなクローンをしたリポジトリをプッシュしたときのエラー。クローン元のgitのバージ…

expectで、ログを取りながらログインする

#!/usr/bin/expect -f set IPADDR "192.168.0.2" set USERID "hoge" set USERPW "piyo" set LOGFILE "test.log" # エラー・タイムアウト用関数 proc ABORT {} { exit 1 } # ログ取得開始 log_file $LOGFILE # expectのタイムアウトを30秒とする set timeout …