Linux
JavaVM内でOutOfMemoryErrorが発生した場合は、当然オプションに従ってヒープダンプ(java_pid*.hprof)が出力される。 一方、Linux上で動作するJavaVMがOOM Killerでkillされた場合、同じオプションを指定していてもヒープダンプは出力されない。 以下のよ…
Red Hatの「RHCE認定試験」には、RHEL7向けのEX300*1とRHEL8向けのEX294*2がある。同じ「RHCE」という名前の資格だけど、「試験の内容」を読むとぜんぜん別物みたい*3。 EX300の試験自体はすでに受けられなくなっている(Retired)けど、EX300試験を対象にし…
GPTパーティションにはパーティション名(72バイトまで)を指定できる。 parted(1)ではnameコマンドを使ってparted name 2 "Partition Name"のようにすればよい。一方fdisk(1)ではGPTパーティションに名前をつける方法がない。fdiskを使いなれている場合は、…
注意事項 逆順(reverse order)でなく逆引き順(reverse index)であることに注意。また日本語の「逆引き」は、文字列の先頭と末尾を逆にした並び(reverse index)の意味と、意味から単語を探す(reverse lookup)の意味の両方で使われる。ここではreverse…
howmで大量に作ったファイル中のWiki風リンク[[foo]]を[[bar]]に変えたいとかの場合。howmのテキストファイルが保存されているディレクトリにcdして以下のように実行する。 find . -xdev -type f -exec sed -i.bak 's/\[\[foo\]\]/\[\[bar\]\]/g' {} \; -exe…
sh(1)のパイプの中で左辺のコマンドの戻り値を${PIPESTATUS[0]}で参照することはできない。 grep(1)でマッチの結果にかかわらず、すべての行を標準出力へ出力することはできない。 tee(1)でパイプの入力を複数のファイルディスクリプタに複製して出力するこ…
authorized_keysのcommand=オプションにパイプを含むコマンドを指定できるか実験。 command="find /home/satob -maxdepth 1 -name '*.sh' | xargs grep '#!'" ssh-ed25519 AAAAC3Nz... pipe@example.com 実行してみたらこんな感じ。問題なく実行できた。結局…
satob.hatenablog.com で挙げた # cat authorized_keys command="ls /$SSH_ORIGINAL_COMMAND" ssh-rsa AAAAB.... $ ssh root@xxx.xxx.xxx.xxx -i ~/.ssh/com "tmp;hostname" ls: /tmp;hostname: No such file or directory みたいなケースで$SSH_ORIGINAL_CO…
任意の処理系から外部プロセスとしてシェルスクリプトを起動したい場合、大きく以下の2つの方法が考えられます。 (1) shの引数にシェルスクリプトを指定する /bin/sh foobar.sh のように、shの引数にシェルスクリプトを指定して起動する。 shに与えるパラメ…
シェルスクリプトに渡した引数を、スクリプト中で単純に$@で参照すると、OSコマンドインジェクションを招くおそれがある。 $ cat sanitize4.sh #!/bin/bash ash -s <
WSL2が入ったのでUbuntuを入れてみた。主にsystemdの不在に伴って、VM上のUbuntuとはいろいろと違いがある。常用のツールはWSL2で、systemdやら何やらシステム管理のお試しはVMWareでやるのがいいかな。 initはsystemdではなく、MSが作ったinitが使われる。s…
rsyncは大量のファイルを走査するため、普通に実行するとページキャッシュに乗ったファイルが追い出されてしまう。 Linuxの場合、nocacheコマンド*1を利用することでページキャッシュを汚さずにrsyncを実行できる。リモートでもrsyncが実行されるので、以下…
Background: You are running Linux on Hyper-V guest VM. Your host machine has scheduled downtime (i.e. is not 24/7 system). Problem: When you booted up the host machine, the system clock of guest VM (Linux) will be set to the time you had s…
リモートのサーバ等からタイムスタンプを保存せずに持ってきてしまったhowmメモファイルのタイムスタンプを、ファイル名に合わせて修正する。ファイル名は「./2019/12/2019-12-31-235959.txt」形式を想定。 $ for i in `find . -name "*.txt"`; do yyyy=$(ec…
Intel 830 チップセット (Intel 82830 CGC (Chipset Graphics Controll)) を使用したマシンに Ubuntu 8.04 をインストールしようとすると、X Windows が起動せずインストールシーケンスが進まない。 具体的には、起動時のスプラッシュは問題なく表示されるが…
Gentoo Linuxをちょっとずつセットアップしてますけど、特に日本語環境まわりがまだ荒削りだなぁ、と。 jfbtermで日本語が豆腐っぽいものになっちゃうとか kterm上でemergeを実行するとダウンロードのプログレスバーの表示がおかしいとか、vimを起動しても表…
以下の実験結果によると、どうやら malloc() が犯人だった模様。「スケジューラが悪いわけじゃないよ」と言っていた Andrew Morton は間違ってなかったみたい。 http://ozlabs.org/~anton/linux/sysbench/
Google 東京で Andrew Morton が講演をするってんで、面白そうだと話を聞きに行きました。以下、主に技術的な内容の報告です。 デレック・ユーさん Google の歴史とかの説明。 Google ops ってナニよ?という説明。ユーザサポートとか、ユーザサポートの人を…
Vine Linux 3.2 + Wine 20050830 の環境に MaxiVista をインストールして、セカンドディスプレイにしたい。 $ wine Maxivista_Setup_SecondaryPC.exeとするとインストーラ自体は問題なく起動するのだが、インストール先ディレクトリの指定でエラー。どんなデ…
RPM $rpm -q --whatprovides /usr/bin/a2ps (from http://www.a-yu.com/system/rpmc.html) dpkg $ dpkg -S /usr/bin/a2psj (from http://debian.fam.cx/index.php?AptGet)
Vine Linux 用 rsync の .rpm パッケージには xinetd 用の設定ファイルが入っているが、 Vine Linux では xinetd なんか使えないのでこれは意味がない。また、 rsync を daemon として動作させるときの設定ファイルも入ってない。 ということで、 rsync 本体…
Debian sarge で次の手順を行うと面白いことになる。テキスト選択もできない。 次の内容を Tgif の図中に書いて EPS として出力し それを含む TeX ファイルを作成、 タイプセットして DVI ファイルを作り dvipdfmx で PDF に変換する □□□ □・□ □ゴ□ □ガ□ □リ…
ところがこれにも問題が。 Debian に戻って、 dd で Western Digital の HDD のイメージを取ろうとしたら…… dmseg は次のような感じ。 usb_control/bulk_msg: timeout usb_control/bulk_msg: timeout usb_control/bulk_msg: timeout usb.c: USB disconnect o…
KNOPPIX を使ってテストしてみたところ、どうやら問題があるのは HDD の方らしい。 Seagate の HDD を使ったら問題なくマウントできました。というわけで、 少なくとも、 Western Digital の HDD を USB to IDE 変換ケーブル "R-Driver II (USB 2.0 TO IDE C…
OS Debian GNU/Linux sarge, kernel: 2.4.27 Adapter R-Driver II (USB 2.0 TO IDE CABLE) HDD Western Digital Caviar 31600 (1.6GB), Jumper は SINGLE 設定。 IDE 接続では問題なし(OS 起動確認) 備考 USB フラッシュメモリ(I-O DATA EasyDisk Mate 64…
上記の方法で印刷はできるんだけど、 CUPS の設定ダイアログには白黒オプションがありませんので普通のテキストを印刷するには不向き。EPSON のドライバには BitsPerPixel オプションがそもそもない、という話も(未確認)。 あと、印刷可能領域の設定がおか…
何か印刷できないよ、というときの対処法も含めて。 まず、 /etc/cups/cupsd.conf の LogLevel を default の "info" から "debug2" に変更。これで、 /var/log/cups/error_log にフルに情報が出力される(印刷したりする際に tail -n 0 -f して見てみよう)…
まず、次のコマンドを忘れないこと。 $ sudo /sbin/modprobe usb-storage次のようにコマンドを実行して、こういうエラーメッセージと…… username@hostname:~$ sudo mount -t vfat /dev/sda /mnt/usbdrive/ mount: wrong fs type, bad option, bad superblock…
locate とか updatedb とかの manpage をひくとは、先頭に locate(1L) とか updatedb(1L) とか表示される。 "1" はいいとして、この "L" ってナニ?
locate(1) のデータベースを更新するためのコマンドとして知られている udpatedb(1) ですが、 Vine Linux 3.2 ではその正体は slocate(1) への symlink でした。 通りで次のコマンドで '/home/hoge' が索引から外されないはずだわ。 $ sudo updatedb --prune…