$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime
上記コマンド一行!実行するだけなのだが、yum updateのタイミングでUTCに戻ってしまうケースがあるので、戻っていたらまた同じようにコマンドを実施するのみ。
追記:
Windows Azureでも同じようにデフォルトでUTCなので、同じコマンドで対処できる。
$ sudo cp /usr/share/zoneinfo/Japan /etc/localtime
上記コマンド一行!実行するだけなのだが、yum updateのタイミングでUTCに戻ってしまうケースがあるので、戻っていたらまた同じようにコマンドを実施するのみ。
追記:
Windows Azureでも同じようにデフォルトでUTCなので、同じコマンドで対処できる。
AWSにはデフォルトでSWAPがないため、メモリ不足の事態が発生するとOOMKillerが誘発されてプロセスが死んでしまう事態が起こり得る。
SWAPがあれば耐えられる局面も多いので、場当たり的対応だが、SWAPをルートパーティションに作成してしのぐ技。再起動するとなくなるので注意。
dd if=/dev/zero of=/swap bs=1M count=512 chmod 600 /swap mkswap /swap swapon /swap # 確認 swapon -s
再起動後も有効にするには/etc/fstabに以下の一行を追記する。
/swap swap swap defaults 0 0
AWSには1年間の無料利用枠があり、t2.microインスタンスを1つだけ起動している状態であれば、無料枠を超えることはないのだが、EBSのSNAPSHOTを取った場合は料金がかかってくるので注意。
Snapshot取った直後は料金が表示されていなかったのだが、先日は$0.05で、本日は$0.08であった。
どうも月間での平均利用で課金されるのかもしれない。
(大した金額ではないが!)
$0.095 per GB-Month of snapshot data stored – Asia Pacific (Tokyo)
請求書の記載には上記の通りなので、1GBだと月11円程度かな。
いずれにしてもsnapshotの大きさが1GBを超えなければ無料枠の範囲内っぽいが、通常は超えるよな。
というわけでsnapshotをずーと取っておくとわずかながらにお金がかかる。
実験用途であればSnapshotなぞ取らないで、消してしまうのが良いだろう!
テキストファイルでダンプをとれるプログラムはファイルサイズが大きくなりがちなので、出力と同時に圧縮をかけたい場面が多いと思われる。
以下のように記述するとMySQLのDBダンプとりつつそれをgzにすることが一度でできる。
#プレーンテキスト出力 mysqldump -u root -p DB_NAME > /var/tmp/DB_NAME.sql #出力を圧縮する mysqldump -u root -p DB_NAME | gzip > /var/tmp/DB_NAME.sql.gz
svnadmin dump REPO_DIR | 以降の記述は一緒である!
久々にAnsibleを変更したが、初歩的なエラーではまってしまった。
msg: Target key cannot be found
というエラーがでたが、落ちているのはS3のところ。
検索したらAnsibleのソースコードが出てきた。というわけで単純にパスの間違い!
もともと法人モデルのPCだからほとんどの人はWindows7のまま利用しているのだろうが、一応アップグレードしたらどんな感じになるのか試してみたく、8月18日にアップグレードインストール(ダウンロードが始まらないため、isoファイルをダウンロードしてDVDからアップグレードインストールした)CF-S10だが、やはりWindows7に戻すことにした。
理由としてはWindows7で最適化されているマシン(ドライバーが全部そろっていること)なのとスリープからの復帰などで微妙にもたつく時間があったためである。
戻すのは簡単で設定からWindows7に戻すことができる。設定→更新とセキュリティ→回復でWindows7に戻すが選択できる。戻せるのはWindows10にアップグレードしてから一ヶ月なので注意。
選択したらあとは再起動がかかる。CF-S10のHDDモデルだが、15分でWindows7に戻った。
なお、十分なバッテリーがあったとしても、戻す前にACアダプターを接続していないと処理が続行できないので注意。
普段はPHPのPHP Simple HTML DOM Parserを利用しているが、
ログインの必要な画面遷移と組み合わせるのでJavaでスクレーピングを久々に実装してみた。
今回はJSoupというJavaのライブラリを利用した。CSSセレクターが使えるのでSimple HTML DOM Parserと同じような記述ができる。
下記のサンプルコードはSJISのファイルをパースするもの。目的の要素までCSSセレクターで取得した後は、elementsをループで回す。
import java.io.File;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class JSoupSample {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
File input = new File("c:/html.txt");
Document doc = Jsoup.parse(input, "Windows-31J", "http://example.com/");
Elements dateElements = doc.select("div.locator table tbody tr");
for (Element element : dateElements) {
System.out.println(element.outerHtml());
}
}
}
OpenJDKのLinux版のパスが覚えずらいのでメモ
#JDK6 /usr/lib/jvm/jre-1.6.0-openjdk.x86_64 #JDK7 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64 #JDK8 /usr/lib/jvm/jre-1.8.0-openjdk.x86_64
32bitなら.x86_64は不要。
Gitでチェックアウトコマンドをしたら以下のエラーが出た。
error: you need to resolve your current index first
以前マージコンフリクト状態であったリポジトリなので、まずはきれいにしなさいと怒られている訳。
マージのコンフリクトが原因なので、いったんマージ前に戻すのが簡単。
$ git reset –merge
gitリポジトリにWeb経由でPUSH
/var/log/httpd/error.logに以下のように出てしまう。
Service not enabled: ‘receive-pack’
これはgitリポジトリのconfigファイルの設定で回避することができる。
このエラーを乗り越えたら次のエラー!
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require ‘git reset –hard’ to match
remote: error: the work tree to HEAD.
この両方を一気に対処したconfigファイルは以下の通り。
[core]
repositoryformatversion = 0
filemode = true
bare = true
logallrefupdates = true
[http]
receivepack = true