ファイルの大量削除@さくら

「WPにファイルがアップロードできないんです」
「WPのアップデートもできないんです」
「WPの動作がおかしいんです」
さくらのレンタルサーバーをご利用で、長期にわたってほっとかれたサイト。
容量限界まではずいぶん余裕がある。
SFTPで適当なファイルをアップロードしようとしてもエラー。
要は新規ファイルが作れないようです。

一旦バックアップのために全部ダウンロードしようとしたら、
ファイル数が膨大すぎて無理な感じ!
キャッシュ系プラグインの吐き出した細かいファイルですねこれ。

とりあえずキャッシュプラグインを止めます。

FTPからの削除も途中で止まっちゃうので困ってしまいましたが、
なんと、さくらのレンタルサーバーはSSHでシェルに入れる!
やったー

ということで入ってみてquotaを見てみると、
確かに300万ファイルの制限が。
ちょとはSFTPで削除できていたので299万+のファイルが残っています。

% rm -rf hoge
さくらのレンタルサーバーでは実行時間が長いプログラムはKillされます。
すばらしい気遣いです。
見てたら55分ぐらいでkillされてました。

いちいち見てられないのでバックグラウンド実行
% rm -rf hoge &
これでログアウトしてもよさげです。

% quota
Disk quotas for user XXXXXXXX (uid XXXX):
Filesystem usage quota limit grace files quota limit grace
/var 4 1048576 1048576 169 100000 100000
/home 15444260 104857600 104857600 1353006 3000000 3000000

何度か実行して削除完了できそうです。

参考にさせていただきました

SSH について – さくらのサポート情報

大量・巨大なファイル操作を低負荷で行う方法 – How old are you?

i8042 no controller found / CentOS7が起動しない

PC Linuxサーバー(HP proliant microserver gen5だったかな)の電源を落とし、
物理的に移動したあとに、とりあえず接続して起動させようとしたら
i8042: no controller found
と出てきて停止してしまう。

このサーバーは外付けUSB HDDをバックアップ用に繋げてあって、
起動時にmountするようにしてあったのだが、
それが接続されていなかった。

接続したら元にもどった。
というか接続しても i8042: no controller found のメッセージは出ていた。
詳しくjournalctlも見てなかったが、本当はi8042のメッセージの後が怪しかったんだろうな。

AsteriskのVoicemailが十数秒で切れてしまう問題

Asterisk PBXにBrastelの050Free SIPで留守番電話を構築しました。
が、メッセージを吹き込んでいる最中に10秒かちょっとで勝手に通話が終了する問題が発生。
というか発生していた。テストの最中は5秒ぐらいで確認していたから。

結論
asterisk.conf の transmit_silence = yes を有効にする
(デフォルトでコメントアウトされている)


transmit_silence、すなわち無音を伝送するか、ということで
transmit_silence = no の場合、録音を待っている間、Asteriskは先方に何もデータを送らない。
それでtimeout判定か何かを食らって切れていたようだ。


調べるのにとても時間がかかった。
当然voicemail.confのmaxsilenceとかを疑ってみるも、何をどう変えても10秒ちょっとで切れる。

asterisk -rvvvvvv で状況をモニタしながら通話。
メッセージ吹き込み中に電話が切れたときのメッセージは
「user hung up」
すなわち通話終了であり、voicemail.confの設定は関係なかった。

さらにsip set debug onして見てみるとQ.850; cause=58というヒントが。
58はService Unavailable的なエラーであり、やはり何かおかしい。

様々な英語圏フォーラムでやりとりがあったが、まさにドンピシャな答えはここにあった。

[ASTERISK-11082] Voicemail cuts off at 60 seconds regardless of config settings – Digium/Asterisk JIRA
ここではtransmit_silence_during_recordと書かれていたが、おそらくバージョン違いであろう。
自分のasterisk.confには transmit_silence となっていた。

なお今回の環境は
CentOS 6.9
Asterisk 15.2.1
でした。

メーリングリストをSympaにする

長らくMLといえばfmlを使っておりました。
mailmanも使ったんですがなんかしっくりこない。
しかしfmlもfml8がなかなか進まないのと、
UTF-8なsubjectが文字化けしやすかったりする問題があり(perlの環境によるの?)
MLをガンガン使ってるクライアントに不評でしたので、思い切ってSympaに変えてみました。

オープンソースのメールサーバ/Sympaとは
今年の2月ぐらいから「メーリングリスト」で検索したらSympaが出てくるようになった。
こちらのサイトに掲載されたのが大きかったんでしょうか。

しかしSympa、あまり日本では使われていないのか、情報があんまりない。
フランス語で「サンパ」と読むらしいですよ。

環境: CentOS7、postfix、既にfml8導入済

Sympa yumリポジトリの登録
yumリポジトリ (Red Hat / CentOS) – メーリングリスト管理ソフトウェア Sympa
$ wget 'http://sympa-ja.org/download/rhel/sympa-ja.org.rhel.repo'
# mv sympa-ja.org.rhel.repo /etc/yum/repos.d/
# yum -y install sympa-httpd

MySQL(mariadb)でSympa用にDBとユーザーを作成。
DB:sympa
User:sympa
Pass:(pass)
# vi /etc/my.cnf
[mysqld]
default-character-set = utf8

セットアップ
# sympa_wizard.pl
適当に質問に答えると完了
間違えて答えてもあとでconfigファイルで直せる(はず)

# vi /etc/sympa.conf
domain mydomain.example.com
listmaster admin@mydomain.example.com
lang ja-JP
supported_lang ja
title Mydomain ML
aliases_program postalias

# postalias /etc/sympa/aliases.sympa.postfix
# postalias /var/lib/sympa/sympa_aliases

ここのpostaliasでpermission deniedが出て非常に苦労した記憶があるが、
どうにかして通った…所有者とパーミッションは下記の通りになっている。
-rw-r--r-- 1 sympa sympa 1165 Apr 6 17:29 sympa_aliases
-rw-r--r-- 1 sympa root 12288 Apr 6 17:29 sympa_aliases.db

# vi /etc/postfix/main.cf
alias_maps = hash:/var/spool/ml/etc/mail/aliases, hash:/etc/aliases, hash:/etc/sympa/aliases.sympa.postfix, hash:/var/lib/sympa/sympa_aliases
recipient_delimiter = +

fml8用のaliasesも残してある(併存してるので)
/etc/aliases.sympa.postfix が基本コマンド向け、
/var/lib/sympa/sympa_aliases がML追加されるたびに更新されるファイル

# vi /etc/httpd/conf.d/sympa.conf
Sympa管理画面の設定。適当に認証とか制限とかかけておく。

ここからはGUI。webインターフェースにアクセス。
http://mydomain.example.com/sympa/
管理者アドレスを登録して、あとはメニューを見ればわかる…はず…

よく使う設定
リストの設定変更>送受信の設定>

返信先アドレス (reply_to_header)
値: リスト (list)
すでに存在するヘッダを優先する (apply) : Reply-To:ヘッダを上書き (forced)

件名につける目印 (custom_subject)
[%list.name%]:[%list.sequence%]
※0パディングの桁数を決めたいが方法がわからない

fml8からの移行だったので
・同名のMLがfml8とSympaに存在すると、postfix上も同じアドレスがダブるのでエラー。
切り替えは素早く。
・/var/lib/sympa/list_data/(ml-name)/stats の1つめの値がMLの通し番号。
勝手に書き換えても動いた。

追記2018-04-28

メッセージのサイズ限界が5MBとなっていて不足であったので変更。
リストごとに設定画面から max_size を変更するもできる。
hoge_ml なら /var/lib/sympa/list_data/hoge_ml/config に書き込まれる。

サイト全体のデフォルト設定は /etc/sympa/sympa.conf に書く。
# 最大10MBに設定
max_size 10485760

service sympa restart してもweb管理画面からサイズ限界が変更されたように見えなかったが
service httpd restart したら更新された。

Raspberry Piでキオスク端末を

QRコードを読み取ってwebサーバーにpostするだけの端末が欲しい。
こりゃーキオスク端末の出番だぞ、でも予算かけたくないぞ、ということで
chromestickとかchromeboxとか、AndroidでROM焼きするか、iPadか、などと考えたが
格安にいけるのはRaspberry Piとディスプレイの組み合わせでした。

購入物


7インチディスプレイ。HDMI対応、1024×600。


Raspberry Pi 3 Model B。専用ケースつきのほうが取り回しが良かろうと。透明のを買いました。


電源。弱かったり不安定だと困るのでそこそこ良さげなやつ。


microSDHCカード。Raspbian OSは4GB以上とのことですが、手元に転がってたのはコレでしたので。

早速翌日届く。amazonプライムさすがです。

Raspbian OSのインストール。
Download Raspbian for Raspberry Pi
ブラウザ使用が前提なのでDesktop版をダウンロード。
Version:March 2018でした。torrentが圧倒的に速かった。

zipの中のimgをmicroSDHCにddで書こう…と思ったらubuntu機消してた。
windowsでimg書けるツールを使う。
「Rufus」ブート可能なISOイメージファイルをもとにブータブルUSBメモリを簡単に作成 – 窓の杜ライブラリ

出来たらmicroSDHCカードをRaspberry Piに挿して電源オン!

あっさり起動する。
いきなりデスクトップ環境まで進む。

画面解像度の選択肢に1024×600がないので、作る。
検索すると様々な情報が出てきますが、下記1行を追記するだけで良かったです。
$ sudo vi /boot/config.txt
hdmi_cvt=1024 600 60 3 0 0 0

しかし画面比が直らない…と思ったらディスプレイ側の設定が4:3固定になってました。んもー

起動時、GUIになったらキオスクモードでchromium browserを起動する。
$ vi ~/.config/lxsession/LXDE-pi/autostart
@chromium-browser --kiosk http://192.168.xxx.xxx/

シャットダウン時に物理的に電源を切る必要がありますが、
だいたい立ち上げっぱなしだし、必要十分。
VNCサーバーも設定オンにするだけでいきなり立ち上げられるので
何かあったときもリモート管理がラクです。

追記2018-05-21

・その1
シャットダウンせずに電源をいきなり切っちゃった場合、次回chromium起動時に
「正常にシャットダウンされませんでした」
と表示が出てしまうので、incognitoモードを追加。
@chromium-browser --incognito --kiosk http://192.168.xxx.xxx/

・その2
2台目以降のセットアップのときは、MicroSDをコピーして完了。
Win32DiskImagerを使いました。

Windows で Raspberry Pi のバックアップを取る方法 | Moonmile Solutions Blog