oinume journal

Scratchpad of what I learned

Linux

xargsでファイルの内容をコマンドの引数として渡す

dates.txt 2019-01-01 2019-02-01 2019-03-01 みたいなファイルがあった時に、このファイルの行をxargsコマンド経由で任意のコマンドの引数として渡す方法。 $ cat dates.txt | xargs -I{} 'echo {}'

Loop over dates with bash in Linux

Here is an example of looping over dates from 2017-10-22 to 2017-12-31. #!/bin/bash START=2017-10-22 END=2017-12-31 CURRENT=$START while true; do echo $CURRENT if [ "$CURRENT" = "$END" ]; then break fi CURRENT=`date -d "$CURRENT 1day" +%Y-…

Sorting processes by memory usage

$ ps aux --sort -rss Sorted by ascending order if you don't add -. alvinalexander.com

curlでHostヘッダーつけてHTTPリクエストを送る

curl -H 'Host:example.com' http://192.168.1.2/alive みたくすると、VirtualHostが設定されているWebサーバでも http://example.com/alive というURLにアクセスしているのと同じことができて便利っていう話。

Linuxでディスクが壊れた場合のデータ復旧方法

先日自宅サーバのディスク(SSD)がお亡くなりになって、「あーやっべー、データ全部バックアップしてないわー」ということが発覚し途方に暮れていたんだけど、グーグル先生に問い合わせたところ dd_rescue なるコマンドがあり、これを使ったらほぼ完全にデー…

watchでコマンドの出力を監視する

Unixには watch という、n秒ごとに定期的にコマンドを実行してその出力を表示するコマンドがあります。 例えば netstat -na した結果を wc で数えて現在のコネクション数を1秒ごとに表示するには $ watch -n 1 'netstat -na | wc -l' とやります。このコマン…

Gitの共有リポジトリを運用する場合の個人的なベストプラクティス

最近Gitの共有リポジトリを構築する機会があったのですが、以下のような感じで運用しています。 gitプロトコルではなくsshでアクセス(ポート開けるのだるいので) サーバ側にgitユーザを作って、アクセスさせたい人にsshの公開鍵をもらってそれを /home/git/.…

bashでコマンド履歴を残さない方法

bashには過去に実行したコマンドを履歴として残しているので、CTRL+pなどでその履歴をさかのぼり過去に実行したコマンドをそのまま実行したり、ちょこっと直して実行することができます。しかし、この便利な機能は一方で、 rm などのファイルを削除したりす…

Apacheが"Couldn't create accept lock"で起動しない場合の対処方法

これの続編なのですが、複数人が共同で使っているサーバなどで、Apacheのプロセスを何個も起動していると、使えるセマフォがなくなるという事態に遭遇することがあります。対処方法は、Apacheを止めるか $ for semid in `ipcs -s | grep www-data | cut -f2 …