oinume journal

Scratchpad of what I learned

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-%m-%d`
done

NOTE

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

$ curl -H 'Host:example.com' http://192.168.1.2/alive

みたくすると、VirtualHostが設定されているWebサーバでも http://example.com/alive というURLにアクセスしているのと同じことができて便利っていう話。サーバをロードバランサーから外す→再起動→curlで確認→ロードバランサーに入れる、みたいなことをよくやる時に使う。

【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)

【改訂新版】 Linuxコマンド ポケットリファレンス (Pocket Reference)

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

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

 

Debian/Ubuntu なら

 

$ sudo aptitude install ddrescue

 

 

自分は新しいマシンを用意していたので、そのマシンに壊れたディスク(/dev/sdd)と余っていたディスク(/dev/sde)を刺して

 

sudo dd_rescue /dev/sdd /dev/sde

 

と実行し、壊れたディスクである /dev/sddのデータを /dev/sde にコピー。

 

あとは /dev/sde を適当にマウントして、データをコピーすればOK。

いやー dd_rescue 様様でした。ありがたい。

 

参考

 

 

 

 

 

 

 

[tmkm-amazon]B001K97W56[/tmkm-amazon]