Linux で、リカバリーモードなのに Read Only と怒られるときの対処方法
いや、そもそもネットワークの設定がおかしくて起動しなくなったので設定ファイルを編集したいのですが。
以下のコマンドを実行して書き込みもできるようにする。
mount -o remount,rw /
いや、そもそもネットワークの設定がおかしくて起動しなくなったので設定ファイルを編集したいのですが。
以下のコマンドを実行して書き込みもできるようにする。
mount -o remount,rw /
以下のスクリプトで、YOUR_FILENAME のところを対象となるファイル名を指定して実行する。まずは元のファイルを YOUR_FILENAME.org という名前でコピー、オリジナルのファイルを上書きする形で英単語の前後に半角スペースを入れて置換する。
export FILENAME='index.rst'; \
cp ${FILENAME} ${FILENAME}.org; \
cat ${FILENAME}.org | sed y/0123456789/0123456789/ | \
sed -E "s/([^ \t:\*0-9\.,<>\-~a-zA-Z()ー[:punct:]]|\" \w+ )([a-zA-Z])/\1 \2/g" | \
sed -E "s/([a-zA-Z])([^ \t:\*0-9\.,<>\-~a-zA-Z()ー[:punct:]]| \w+ \"$)/\1 \2/g" > ${FILENAME}
HTML 文書の中でこの置換を行いたい場合、<span>...</span> によって見えないスペースが加えられていることがあるため、以下のスクリプトで対応する。
Drupal 8 で、コアやモジュールをアップートしたらエラーが出るようになってしまった、というのは実はよくある。これは Drupal 8 がキャッシュの仕組みを積極的に取り入れたことも影響しているように思う。**WSOD(White Screen of Death)**になったり、Fatal エラーが出たら、以下をチェツクする。
GRANT USAGE ON `<データベース名>`.* TO '<ユーザー名>'@'%';
GRANT ALL PRIVILEGES ON `<データベース名>`.* TO '<ユーザー名>'@'%' WITH GRANT OPTION;
1. システム内で、すべてのサーバの時刻を合わせる。
ntpdate time.apple.com
などを cron ジョブでまわす。
2. 常にディスク容量をチェックする。
Linux でユーザーをグループに追加する方法は1つだけではなく、実はいろいろな方法がある。コマンドでいうと、gpasswd と usermod、adduser の3つ。
このうち、ユーザーをグループに追加するには gpasswd を使うとよい。
gpasswd -a <USERNAME> <GROUPNAME>
usermod は、
usermod -aG <GROUPNAME> <USERNAME>
のように使うが、-a オプションを忘れて usermod -G ... だけにしてしまうと、なんと既存のグループが上書きされてしまうので注意が必要である。
Ubuntu 系では、adduser が使える。
adduser <USERNAME> <GROUPNAME>
tag コマンドを使う。
docker tag <image_id> <repository_name>:<tag>
ここで、:tag の部分は省略して <repository_name> だけにしてもよい。コロン(:)の後の tag は、日付やバージョンをつけて同じリポジトリの中で異なるバージョンのイメージを置くという感じ。
docker tag <image_id> <repository_name>
Ubuntu 14.04 LTS では、サーバ起動時はUpstart というもので Apache などのサービスを起動していたのだけれど、16.04 LTS からは Systemd というのに変わってしまった。それによって、これまで 14.04 LTS ではうまくいっていたサーバ起動時の Docker コンテナ起動ができなくなってしまった・・・
・・・と、お嘆きの皆様、systemd なんかをいろいろいじってみたのだが、以下のようなシンプルな手順で今は落ち着きました。
docker run --name <Docker 名> -h <ホスト名> -it <コンテナ ID> /bin/bash
でコンテナを起動しておく。そのあと、/etc/rc.local (の、最後の方)に
vi /etc/rc.local
以下のように docker start を書いておくだけ。
/etc/crontab を編集する
vi /etc/crontab
月末だけ実行
H 23 28-31 * * /usr/bin/test $( date -d '+1 day' +%d ) -eq 1 && <実行したいコマンド>
最終金曜日のみ実行の場合
0 0 * * 5 /usr/bin/test $( date +%m ) -ne $( date --date '7 day' +%m ) && <実行したいコマンド>
特に、
/usr/bin/test $( date -d '+1 day' +%d ) -eq 1
や
/usr/bin/test $( date +%m ) -ne $( date --date '7 day' +%m )
は、Jenkins でも活躍しそう。
ボリュームのリストを表示
sudo docker volume ls -qf dangling=true
要らなくなったボリュームを削除
sudo docker volume rm $(sudo docker volume ls -qf dangling=true)