てきとうなメモ

本の感想とか技術メモとか

Linux

systemdのバグ

systemdで複数の不具合が確認される | スラド IT 多くのLinuxディストリビューションで採用されているシステム管理ソフトウェア「systemd」で、複数の不具合が確認されています。1つは、ユーザー名を指定する個所で数字で始まるユーザー名を指定すると、その…

--no-preserve-rootオプション

サーバ業者が" rm -rf / "で全サーバを誤消去、復旧法をQ&Aサイトに尋ねる。実は書籍執筆のための「引っ掛け問題」 - Engadget Japanese 種明かしをすると、現在の UNIX(Linux)システムでは管理者権限で "rm -rf / " を実行しても警告メッセージが表示され、…

suやsudoにおけるPATH

suとかsudoとかrootになる方法はいくつかあるけど、/usr/local/binにパスが通っていないことがあった。 で、なんでかなと。centos7の環境で確認すると以下のようになる。 $ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.lo…

xmlの文字参照を元の文字に戻す

変換サービスとかあるけど、コマンドラインで実行したい場合はxmllintでできる $ echo "<foo>&#12371;&#12435;&#12395;&#12385;&#12399;</foo>" | xmllint --encode utf-8 - <foo>こんにちは</foo>

centos6でcrashを使ってみる

まず、カーネルのダンプをとれるようにする # yum install kexec-tools # chkconfig kdump on # reboot解析用にcrashとkernel-debuginfoをインストール # yum install crash # yum --enablerepo=base-debuginfo install kernel-debuginfo-`uname -r`強制的に…

nkfのmanがおかしい

mac上のhomebrewで入れたnkfやubuntu14.04のnkfのmanを読もうとすると表示がおかしい NAME nkf - XXXXXXXXXXXXXXXXXX SYNOPSIS nkf [-butjnesliohrTVvwWJESZxXFfmMBOcdILg] [file ...] ...調べると Ubuntu日本語フォーラム / Ubuntu 13.10 から 14.04 へアッ…

CentOS7の/sbin/service

if [ -f "${SERVICEDIR}/${SERVICE}" ]; then env -i PATH="$PATH" TERM="$TERM" SYSTEMCTL_IGNORE_DEPENDENCIES=${SYSTEMCTL_IGNORE_DEPENDENCIES} SYSTEMCTL_SKIP_REDIRECT=${SYSTEMCTL_SKIP_REDIRECT} "${SERVICEDIR}/${SERVICE}" ${ACTION} ${OPTIONS} e…

端末への出力とファイルへの出力の速度差

標準出力に大量に出力するようなプログラムを実行する時に、端末に出力してしまうと結構時間がかかる $ time ruby -e '1000000.times {|i| puts i}' ... real 0m10.271s user 0m3.136s sys 0m3.508sリダイレクトした方が速い $ time ruby -e '1000000.times …

はじめてUNIXで仕事をする人が読む本

はじめてUNIXで仕事をする人が読む本 (アスキー書籍)作者: 木本雅彦,松山直道,稲島大輔出版社/メーカー: KADOKAWA / アスキー・メディアワークス発売日: 2014/03/25メディア: Kindle版この商品を含むブログ (5件) を見るUNIXの初心者向け本はちょっと情報が…

/tmpディレクトリ

Tmpディレクトリの活用法について改めて考える - RickyNews 「/tmpと/var/tmpの違いについて述べよ」・・・インフラエンジニアの入社試験の問題に出てきそうですね。 さて単純な解答ですが、システム的なことを言えば以下あたりです。(RHEL) /tmp /var/tmp …

Ubuntu 14.04にしてSambaが動いていなかった

Ubuntu 14.04にしてからうまくSambaが動いていないっぽい。設定がデフォルトの設定ファイルに上書きされていたので、それは戻したのだが $ sudo service samba restartではうまく再起動してくれない。/etc/init.d/sambaは以下のように記述されているのだが、…

MoinMoinでUnicodeEncodeError

MoinMoinで日本語のページを開こうとすると mod_wsgi (pid=6340): Exception occurred processing WSGI script '/opt/local/moin/programming/moin.wsgi'. Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/werkzeug/wsgi.py", l…

xargs -I

xargsって標準入力の最後に引数を渡すだけだと思っていたが、テンプレート的に渡してcpとかmvとかlnとかに渡すことができるのか ls /etc/*.conf | xargs -I % cp % /path/to/destdir -Iで指定した文字列(%)が標準入力のものに置き換わる。これは一件ずつ実行…

Ubuntu Linux 14.04にアップグレード

Ubuntu Linux 12.04のサポート切れるっぽいので14.04にアップグレードした。 $ sudo do-release-upgrade -papacheが2.4になったり、confのディレクトリ構成が少し変化している。mods-available,sites-availableに加えてconf-availableが追加されたので、アプ…

service network start時に実行していること

eth関係のみについてちょっとだけ読んだ $ service network startを実行すると、/etc/init.d/networkが実行される。で、こいつはeth0などの各インターフェースiに対して/etc/sysconfig/ifcfg-$iを読み込み条件分岐しながら、/etc/sysconfig/ifupを実行する。…

grep 2.17

文字列検索コマンド「grep 2.17」リリース | SourceForge.JP Magazine 10倍速くなったとあるけど、 grep -i in a multibyte locale is now typically 10 times faster for patterns that do not contain \ or [. grep-2.17 released - LWN.net マルチバイト…

PIDファイルの置き場所

停電から復旧したマシンで、rcスクリプトで起動すべきデーモンプロセスが起動していないことがあった。で、PIDファイルが残っていた。そのrcスクリプトはPIDファイルをチェックして起動するかどうか決めるスクリプトだったので、それをチェックして起動しな…

CentOS6のcronのLANG環境変数

cron上で実行しているスクリプトのLANG環境変数がen_USになることがあった。/etc/init.d/cron→/etc/init.d/functions→/etc/profile.d/lang.shと呼び出していて if [ -n "$LANG" ]; then case $LANG in *.utf8*|*.UTF-8*) if [ "$TERM" = "linux" ]; then if …

sudoでrootになる

今まで $ sudo -sでrootになっていたけど、 $ sudo -iの方がログインをシミュレートしてくれるので良さげ。

apache2 + thinでRedmineを構築

Redmineのバージョンは2.3.3bundlerのインストール $ sudo gem install bundler依存gemのインストール $ cd path/to/redmine $ sudo bundle install --without development testデータベースの作成 $ mysql -u root -p mysql> CREATE DATABASE redmine CHARA…

apacheの設定ファイル構成

こんな感じらしい。 apache.conf メインの設定ファイル。conf.d,httpd.conf,sites-available/,ports.conf,sites-enabledをincludeしている conf.d 各サービスごとの設定を置く。local-*.confと*.conf.localはapt-getで上書きされないことが保証されている ht…

Tomcat6が終了できない対策

catalina.shを実行してもなかなか終了してくれない場合があって、再起動するときに catalina.sh stop catalina.sh start とスクリプトで実行すると失敗することがある。で、ubuntuの起動スクリプトとかだと以下のようになっている。 log_daemon_msg "Stoppin…

diffで空白を無視する

diffでインデントや空白の数が微妙に違うソースコードを比較したいということがあったので、diffにオプションないかなと調べていたら以下のオプションがあった。 -E タブとスペースの違いを無視する。タブはスペース8つに該当するらしい -b スペースの数の違…

コマンドラインで和集合とか積集合とか

2つのファイルに共通する行(積集合)を出力したい場合は $ cat foo.txt bar.txt | sort | uniq -d2つのファイルのどちらかに含まれる行(和集合)を出力したい場合は $ cat foo.txt bar.txt | sort | uniq片方のファイルに含まれるが、片方のファイルに含まれ…

sudo-1.8のバグ

Sudo format string vulnerability Sudo 1.8.0 introduced simple debugging support that was primarily intended for use when developing policy or I/O logging plugins. The sudo_debug() function contains a flaw where the program name is used as …

less/lvでtail -f

頻繁に更新されるログファイルを見るときに、tail -f /path/to/logとかやるけどless/lvでできないかなと思っていたらFでtail -fのモードになるのか F Scroll forward, and keep trying to read when the end of file is reached. Normally this command woul…

sysv-rc-conf

ubuntu用chkconfigが欲しかったので探したらすぐに見つかった.curses使ってTUIで操作可能な点がchkconfigよりも良い所かな. $ sysv-rc-conf ┌ SysV Runlevel Config -: stop service =/+: start service h: help q: quit ┐ │ │ │ service 1 2 3 4 5 0 6 S …

dateコマンド

unixtimeを求めるワンライナー - hnwの日記PHPでなくてもいいのだったらdateコマンドが一番シンプルだと思う.GNUだったらこんな感じ $ date -d "2009/9/26 23" +%s 1253973600BSDはちょっとややこしい. $ date -v2009y -v9m -v26d -v23H -v0M -v0S +%s 125…

over

こんなのあったのか. Nice way to view source code | Command-line Fu 中身はenscriptだけど $ cat /usr/bin/over #!/bin/sh librarydir=/usr/share/enscript enscript -E -p- --quiet --language=overstrike $* 2>&1 | less

macでコマンドライン

LinuxがMac OS Xよりも優れている10のこと - builder by ZDNet Japan どういう用途につかうのか(そもそもクライアントマシンなのかサーバマシンなのかなど)とか,ユーザがどのようなユーザなのか(ライトユーザ/開発者/etc...)とかによって,メリットだと言わ…