Ubuntu タグの一覧です(4 件)

さくらVPSのUbuntuが Booting from hard disk で止まってしまった時の対処方法

今朝、CVE-2015-0235 in Ubuntu に対応する為、このブログが動いているさくらのVPS(Ubuntu 12.04)を下記記事を参考にアップデートした。

12.04 - CVE-2015-0235 How to update eglibc to 2.15-0ubuntu10.10 - Ask Ubuntu

で、アップデート後は再起動したほうがいいだろうと思い、sudo reboot を実施、すると "Booting from hard disk" のメッセージで止まりOSが起動しなくなってしまった。

再インストールという最悪の事態を覚悟しながら、ググりまくり、同一現象を記したほぼ唯一の記事を発見。

さくらのVPSでUbuntuが起動しなくなった時の対処法 | てきとうメモてきとうメモ

殆ど記事通りの手順で復帰することが出来た。再インストールする気満々でしたので、本当に助かりました。
大まかな内容としては、

  • Booting from hard disk で止まっているのは GRUB2 が壊れている可能性があるので修復する必要がある
  • さくらVPSのISOイメージインストールからUbuntuデスクトップをライブ起動させる
  • Ubuntuデスクトップで固定IPを振り、apt-get が使えるようにする
  • boot-repairをインストールする
  • boot-repairを起動させ、ブート修復をして再起動

一昔前に流行ったKNOPPIXや、WindowsPEでリカバリするようなイメージですね。
慣れれば難易度が高い作業ではないけれども、リブート時にこのようなリスクを内包しているのは考えもの。ただこれが、さくらVPSのUbuntu使用時にだけ発生するものなのか、そうでないのかはちょっとわからない。とりあえず、UbuntuデスクトップのISOイメージはどこかに用意しておいたほうがよいかもしれない。


[Ubuntu][Shell]Ubuntuの/bin/shでsourceコマンドが効かない件

virtualenv(wrapper)環境で動作するPythonスクリプトをcronで運用したくて 下記のようなシェルスクリプトを書いたのですが、

#!/bin/sh
export LANG=ja_JP.utf-8
export ENV_NAME=test
export VIRTUALENV_PATH=$HOME/.virtualenvs/$ENV_NAME
source $VIRTUALENV_PATH/bin/activate
cd $HOME/tmp/test
python ./hoge.py
exit

Ubuntuの場合、これがエラーとなる(確認したのは12.04と14.04)

hoge.sh: 5: hoge.sh: source: not found
Traceback (most recent call last):
  File "./hoge.py", line 2, in <module>
    from twython import Twython
ImportError: No module named twython

結論からいうとUbuntuの/bin/sh の実態はDashというシェルで、Dashには sourceコマンドがないようです。
※上記の場合、sourceでvirtualenvのactivateが出来ずに結果的にシステムのPythonが使われImportErrorを発生させた

$ls -l `which sh`
lrwxrwxrwx 1 root root 4  9月 21 22:27 /bin/sh -> dash

DashAsBinSh - Ubuntu Wikiによると "source"の代わりに"."を使えと。

上記スクリプトの場合、このようになります。

#!/bin/sh
export LANG=ja_JP.utf-8
export ENV_NAME=test
export VIRTUALENV_PATH=$HOME/.virtualenvs/$ENV_NAME
. $VIRTUALENV_PATH/bin/activate
cd $HOME/tmp/test
python ./hoge.py
exit

それかシェバングのsh を bash 等に替えちゃうとかですかね


[Evernote][Logwatch]LogwatchレポートをEvernoteの特定ノートブックに直接保存する

私は自宅鯖とさくらVPSのLogwatchレポートをGmailで受信するようにして、それをEvernoteに転送しています。
Evernoteはメールでノートを送るときにSubjectに@hogehogeと入れることにより、inboxをスキップさせてhogehogeというノートブックに直接保存させることが出来ますが、メールの自動転送の場合、Subjectを修正することが出来ないので、inboxに保存されてしまい、特定のノートブックに保存するためにinboxから移動させる必要があって結構面倒です(というかそんな作業は絶対に続かない)。
何とかならないかと色々考えましたが、結局LogwatchのSubjectを修正することにしました。

Ubuntu10.04の場合ですが、以下のPerlスクリプトを編集します
$ sudo vi /usr/share/logwatch/scripts/logwatch.pl

私の環境では1157行目を以下のようにします(バージョン等により、修正行が違う場合も考えられます。また@以下は私の場合です)
-print OUTFILE "Subject: Logwatch for $Config{'hostname'} (${OStitle})\n";
+print OUTFILE "Subject: Logwatch for $Config{'hostname'} (${OStitle})\@193_log_SakuraVPS\n";

Subjectに@を入れることで任意のノートブックに保存することが出来ますが、@はバックスラッシュを前に入れてエスケープさせておいて下さい。

そして、Logwatchを実行させると
$ sudo /etc/cron.daily/00logwatch


Gmail側にはこのような件名で届き
Logwatch for www4270u (Linux)@193_log_SakuraVPS - men.katame.nori.oome@gmail.com - Gmail

Evernoteにはinboxをスキップして特定のノートブックに保存されます
スクリーンショット(2012-05-11 19.23.54)

[Ubuntu]ユーザー宛メールを転送する

Linuxサーバの設定を説明したサイトなんかを見ると、初期設定でroot宛メールをいつも使っているメールなんかに転送する方法が載っているのですが、私はVPSでのcronをユーザー権限で実行させているので、そのユーザー宛メールを転送させる方法が検索しても出て来なかったので今まで放置していました。
最近、再度調べていたらようやくやり方がわかりました。というかroot宛メールの転送と同じなのですね^^;よく考えればそうなんですがすごく難しく考えていたようです。

# echo "aoshiman: hoge@example.com" >> /etc/aliases
# newaliases
# echo test|mail aoshiman

こんな感じでよいのですね。

参考させて頂いたサイト
PAGE TOP