smbgetのパスワード指定

sambaの速度を測るのにsambaをwgetのように使える smbget を使おうとしたのですが以前使えていた気がする -p オプションが無くなっています.

$ bash -c "read -sp \"passwd: \" passwd; smbget smb://smbhost/share/data -U user -p $passwd -O > /dev/null"
passwd: -p: unknown option

usageを見ると確かにありません.

$ smbget --usage
Usage: smbget [-?aneruRODqv] [-?|--help] [--usage] [-w|--workgroup=STRING] [-U|--user=STRING] [-a|--guest] [-n|--nonprompt] [-d|--debuglevel=INT] [-e|--encrypt]
        [-r|--resume] [-u|--update] [-R|--recursive] [-b|--blocksize=INT] [-o|--outputfile=STRING] [-O|--stdout] [-D|--dots] [-q|--quiet] [-v|--verbose]
        [-f|--rcfile=STRING]

-pを無くせばプロンプトが出てきますが毎回入力するのは面倒なのでどうにか出来ないかなとmanを見てみます.

man smbget
       -U, --user=username[%password]
           Username (and password) to use

-U オプションに一緒に書けるようです.デミリタは要らないよう.

$ bash -c "read -sp \"passwd: \" passwd; smbget smb://smbhost/share/data -U user$passwd -O > /dev/null"

デミリタに : を指定しても動きました.

$ bash -c "read -sp \"passwd: \" passwd; smbget smb://smbhost/share/data -U user:$passwd -O > /dev/null"

他にもSMB URLにも書けるようです.

man smbget
SMB URLS
       SMB URL's should be specified in the following format:

           smb://[[[domain;]user[:password@]]server[/share[/path[/file]]]]

ただし,この書き方だとSMB URLが環境変数が展開されてSTDOUTに表示されるのでパスワードを隠したい場合は使えません.

$ bash -c "read -sp \"passwd: \" passwd; smbget smb://user:$passwd@smbhost/share/data -O > /dev/null"
smb://user:password@smbhost/share/data(100.00%) at 130.69MB/s ETA: 00:00:0008
Downloaded 2.17GB in 17 seconds

それを言うと -U の場合もプロセスにパスワードが表示されてしまうのであまりよろしくないですね.てことでとりあえずこんな感じならいいかな?

$ bash -c "read -sp \"passwd: \" passwd; echo $passwd | smbget smb://smbhost/share/data -U user -O > /dev/null"

このときのプロセス

$ ps -ef|grep smbget
mk       12626 14620  0 22:38 pts/6    00:00:00 bash -c read -sp "passwd: " passwd; echo $passwd | smbget smb://smbhost/share/data -U user -O > /dev/null
mk       13263 12626 49 22:39 pts/6    00:00:00 smbget smb://smbhost/share/data -U user -O

あれ?結局最初に戻って…….

余録(キャッシュクリア)

速度を測りたいけど2回目以降はキャッシュされてしまうのでキャッシュをクリアして測る.
以下はlocalhostで試してるので差が出ているが,ネットワーク経由だとネットワークがボトルネックになり差が出なかった.でも一応やっておく.

1回目
smb://smbhost/share/data(100.00%) at 28.12MB/s ETA: 00:00:00434
Downloaded 2.17GB in 79 seconds
2回目
smb://smbhost/share/data(100.00%) at 130.69MB/s ETA: 00:00:0008
Downloaded 2.17GB in 17 seconds
キャッシュをクリア
$ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
もう一回
smb://smbhost/share/data(100.00%) at 27.43MB/s ETA: 00:00:0044
Downloaded 2.17GB in 81 seconds

/proc/sys/vm/drop_caches についてはKernel Documentsの admin-guide/sysctl/vm.rst.gz あたりを参照のこと.

$ zgrep ^drop_caches -A42 /usr/share/doc/linux-doc-5.3/Documentation/admin-guide/sysctl/vm.rst.gz

環境

環境1
$ dpkg-query -W samba smbclient bash
bash    4.4.18-2ubuntu1.2
samba   2:4.7.6+dfsg~ubuntu-0ubuntu2.14
smbclient       2:4.7.6+dfsg~ubuntu-0ubuntu2.14
$ lsb_release -dr
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
$ uname -rvm
4.15.0-72-generic #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 x86_64
環境2
$ dpkg-query -W samba smbclient bash
bash    5.0-5
samba   2:4.11.1+dfsg-3
smbclient       2:4.11.1+dfsg-3
$ lsb_release -dr
Description:    Debian GNU/Linux bullseye/sid
Release:        unstable
$ uname -rvm
5.3.0-3-amd64 #1 SMP Debian 5.3.15-1 (2019-12-07) x86_64

Nextcloudのデータディレクトリを移動するメモ

Nextcloudのデータディレクトリは既定値ではNextcloudのすぐ下の data ディレクトリになります.しかしここはウェブサーバのドキュメントルート以下になってしまい設定をミスするとデータディレクトリが一般公開されてしまう可能性があり少し怖いです.
そこでNextcloud導入時に設定ファイルの config/config.phpdatadirectory にウェブサーバドキュメントルートの外にNextcloudデータを設定します.

今回デフォルトのウェブサーバドキュメントルート内のまま運用されているNextcloudがあったのでそれをウェブサーバドキュメントルート外に移動してみました.
ディスクを増設してそちらにデータを移すなどの際にも同じ手順でデータ移行できると思います.

今回の例でのパスはこんな感じです.

  • Nextcloud導入ディレクトリ : /var/www/nextcloud
  • 旧Nextcloud データディレクトリ : /var/www/nextcloud/data
  • 新Nextcloud データディレクトリ : /var/data/nextcloud/data
Important
インストール後のデータディレクトリの移動は公式ではサポートされていません.

ファイルのコピー

同一のファイルシステム間であれば mv commandで一瞬ですが,今回はファイルシステムを跨いでいるので時間がかかります.
ダウンタイムを短くしたいのでNextcloud動作状態で一度データをコピーしてその後rsyncで差分のみコピーすることにします.

1度目のコピー

$ sudo cp -a /var/www/nextcloud/data /var/www/nextcloud/

rsyncでデータ同期

1度目のデータコピーに時間がかかったのでrsyncで同期

$ sudo rsync -avc /var/www/nextcloud/data /var/www/nextcloud/

バックグラウンドジョブを停止(恐らくこの手順は不要)

次の手順でメンテナンスモードに移行するので不要だと思うけど念の為バックグラウンドジョブをcrontabで設定しているのを停止(コメントアウト)しておく.(Webcronの場合も止めたほうがいいかも.AJAXの場合は恐らく不要)

$ sudo -u www-data crontab -e

メンテナンスモードに移行

ここからNextcloudは利用できなくなります.

$ sudo -u www-data php ./occ maintenance:mode --on

データ同期

-c オプションも付けたほうがいいけどデータが大きいと時間がかかるので今回はなしであとでチェックすることにする.

$ sudo rsync -av /var/www/nextcloud/data /var/www/nextcloud/

データベース書き換え

Nextcludのデータベース内のファイルディレクトリ情報を書き換えます.書き換え前に念の為データベースのバックアップも取っておきます.

バックアップ
$ sh -c "umask 266 ; mysqldump -uroot -p --opt --all-databases --events | xz > mysqlbackup-`date +\%F_\%T_\%s_$`.sql.xz"
db書き換え
$ mysql -unextcloud -p
mysql> use nextcloud;
mysql> update oc_storages set id='local::/var/data/nextcloud/data/' where id='local::/var/www/nextcloud/data/';
mysql> quit;

設定ファイル書き換え

Nextcloudの設定ファイルの config/config.php の中の datadirectory を新しいパスに書き換えます.

  'datadirectory' => '/var/data/nextcloud/data',

メンテナンスモードをoffにする

$ sudo -u www-data php ./occ maintenance:mode --off

動作確認

Nextcloudにログインしてファイルディレクトリが閲覧できることを確認する.

バックグラウンドジョブを設定

バックグラウンドジョブをcrontabで再設定

$ sudo -u www-data crontab -e

旧データの削除

しばらく運用して問題ないようなら旧データを削除する.

$ sudo rm -rf /var/www/nextcloud/data

生ディスクなんかだと secure-delete とか使うと少し安心.でも確実じゃないし時間かかるので暗号化fsを推奨.

$ sudo nice -20 ionice -c1 -n0 srm -r /var/www/nextcloud/data

環境

$ sudo -u www-data php ./occ -V
Nextcloud 17.0.1
$ dpkg-query -W php7.2-common mysql-server
mysql-server    5.7.28-0ubuntu0.18.04.4
php7.2-common   7.2.24-0ubuntu0.18.04.1
$ lsb_release -dr
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
$ uname -m
x86_64

Nextcloud upgrade時に`Check for expected files The following extra files have been found: .rnd` と言われて失敗する(15.0.7→16.0.6)

Nextcloud 15.0.7からNextcloud 16.0.6へのアップグレードを行おうとしたところ,アップグレード画面で以下のようなメッセージが表示されて先に勧めません.

Nextcloud upgrade failed 20191125 13:11:17 12878

Check for expected files
The following extra files have been found:
.rnd

Nextcloud 以下を確認すると3つの .rnd ファイルが見つかりました.

$ cd /export/data/var/nextcloud-data
$ find ./ -name .rnd -ls
13495506336      0 drwxr-xr-x   3 www-data www-data       38 Jan 31  2018 ./data/matoken/files_encryption/keys/files/tmp/pizero/home/pi/.rnd
15757999341     12 -rw-r--r--   1 www-data www-data     9656 Jan 31  2018 ./data/matoken/files/tmp/pizero/home/pi/.rnd
11866753713      4 -rw-------   1 www-data www-data     1024 Nov 25 13:19 ./.rnd

以下のページを見ると,Nextcloud 直下の .rnd ファイルが悪さをしているようなのでこれを退避します.

$ sudo mv ./.rnd ~/tmp

この後もう一度アップグレードを試みるとうまく行きました.

This behavior continues up to version 15.0.7.

とのことでぎりぎり引っかかったようです😣

環境
$ sudo -u www-data php ./occ -V
Nextcloud 16.0.6
$ dpkg-query -W php7.2-common mysql-server
mysql-server    5.7.28-0ubuntu0.18.04.4
php7.2-common   7.2.24-0ubuntu0.18.04.1
$ lsb_release -dr
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
$ uname -m
x86_64

Ubuntu 19.10 amd64からCANON LBP9100Cで印刷🖨️

タイトルの通りで内容は以下のページそのままです.ただ,systemd環境なのでそのへんだけが違います.

パッケージの入手.

以下のページからパッケージ等を入手します.

今回は「CAPT Printer Driver for Linux Ver.2.71(32bit&64bit)」を使いました.

結構古いですね.

本バージョンの動作確認済 OS
Fedora 24 (32bit/ 64bit)
Fedora 25 (32bit/ 64bit)
Ubuntu 16.04 Desktop (32bit/ 64bit)
Ubuntu 16.10 Desktop (32bit/ 64bit)

ファウンロードしたファイルの内容はこんな感じ.

$ ls -s ./linux-capt-drv-v271-jp.tar.gz
124484 ./linux-capt-drv-v271-jp.tar.gz
$ sha512sum ./linux-capt-drv-v271-jp.tar.gz
f6b354dd29393322f0ae4bcea5568650ce286358e42505b6c33f2c7ebb9ff8c813ca52bfd9d56d0cf87db678e56af5559b6300720d50ea29834c1d319c1eb75c  ./linux-cap
t-drv-v271-jp.tar.gz
$ tar tvf ./linux-capt-drv-v271-jp.tar.gz
-rw-rw-r-- canon/canon 9879361 2017-04-18 00:00 linux-capt-drv-v271-jp/32-bit_Driver/RPM/cndrvcups-capt-2.71-1.i386.rpm
-rw-rw-r-- canon/canon 15356845 2017-04-18 00:00 linux-capt-drv-v271-jp/32-bit_Driver/RPM/cndrvcups-common-3.21-1.i386.rpm
-rw-rw-r-- canon/canon 15382368 2017-04-18 00:00 linux-capt-drv-v271-jp/32-bit_Driver/Debian/cndrvcups-common_3.21-1_i386.deb
-rw-rw-r-- canon/canon  9716256 2017-04-18 00:00 linux-capt-drv-v271-jp/32-bit_Driver/Debian/cndrvcups-capt_2.71-1_i386.deb
-rw-rw-r-- canon/canon  9905144 2017-04-18 00:00 linux-capt-drv-v271-jp/64-bit_Driver/RPM/cndrvcups-capt-2.71-1.x86_64.rpm
-rw-rw-r-- canon/canon 15365135 2017-04-18 00:00 linux-capt-drv-v271-jp/64-bit_Driver/RPM/cndrvcups-common-3.21-1.x86_64.rpm
-rw-rw-r-- canon/canon  9733334 2017-04-18 00:00 linux-capt-drv-v271-jp/64-bit_Driver/Debian/cndrvcups-capt_2.71-1_amd64.deb
-rw-rw-r-- canon/canon 15389756 2017-04-18 00:00 linux-capt-drv-v271-jp/64-bit_Driver/Debian/cndrvcups-common_3.21-1_amd64.deb
-rw-rw-r-- canon/canon   573192 2017-04-18 00:00 linux-capt-drv-v271-jp/Doc/guide-capt-2.7xJ.tar.gz
-rw-rw-r-- canon/canon    27592 2017-04-18 00:00 linux-capt-drv-v271-jp/Doc/LICENSE-JP.txt
-rw-rw-r-- canon/canon    46924 2017-04-18 00:00 linux-capt-drv-v271-jp/Doc/README-capt-2.71J.txt
-rw-rw-r-- canon/canon 10031685 2017-04-18 00:00 linux-capt-drv-v271-jp/Src/cndrvcups-capt-2.71-1.tar.gz
-rw-rw-r-- canon/canon 17277148 2017-04-18 00:00 linux-capt-drv-v271-jp/Src/cndrvcups-common-3.21-1.tar.gz
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/32-bit_Driver/RPM/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/32-bit_Driver/Debian/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/64-bit_Driver/RPM/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/64-bit_Driver/Debian/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/Doc/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/Src/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/32-bit_Driver/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/64-bit_Driver/
drwxrwxr-x canon/canon        0 2017-04-18 00:00 linux-capt-drv-v271-jp/

展開して必要なパッケージを導入します.

$ tar xf ./linux-capt-drv-v271-jp.tar.gz
$ sudo dpkg -i ./linux-capt-drv-v271-jp/64-bit_Driver/Debian/cndrvcups-capt_2.71-1_amd64.deb ./linux-capt-drv-v271-jp/64-bit_Driver/Debian/cndrvcups-common_3.21-1_amd64.deb
以前に未選択のパッケージ cndrvcups-capt を選択しています。
(データベースを読み込んでいます ... 現在 690646 個のファイルとディレクトリがインストールされています。)
.../cndrvcups-capt_2.71-1_amd64.deb を展開する準備をしています ...
cndrvcups-capt (2.71-1) を展開しています...
以前に未選択のパッケージ cndrvcups-common を選択しています。
.../cndrvcups-common_3.21-1_amd64.deb を展開する準備をしています ...
cndrvcups-common (3.21-1) を展開しています...
cndrvcups-common (3.21-1) を設定しています ...
cndrvcups-capt (2.71-1) を設定しています ...
systemd (242-7ubuntu3) のトリガを処理しています ...

cups再起動.

$ sudo service cups restart

プリントスプーラにプリンタを登録.

$ sudo lpadmin -p LBP9100C -P /usr/share/cups/model/CNCUPSLBP9100CCAPTJ.ppd -v ccp://localhost:59687 -E

ccpdにdaemonにプリンタを登録.
192.168.1.14 部分は該当プリンタのIPアドレスに変更する.

$ sudo ccpdadmin -p LBP9100C -o net:192.168.1.14

 CUPS_ConfigPath = /etc/cups/
 LOG Path        = None
 UI Port         = 59787

 Entry Num  : Spooler   : Backend       : FIFO path             : Device Path   : Status
 ----------------------------------------------------------------------------
	 [0]    : LBP9100C  : ccp           : //localhost:59687     : net:192.168.1.14      : New!!

cupsにアクセスできるよう設定しておく.ここでは自分(127.0.0.1)だけ.

$ sudo vi /etc/cups/cupsd.conf
$ sudo git -C /etc diff HEAD^ -- /etc/cups/cupsd.conf
diff --git a/cups/cupsd.conf b/cups/cupsd.conf
index 0f233ad..1c51867 100644
--- a/cups/cupsd.conf
+++ b/cups/cupsd.conf
@@ -29,11 +29,13 @@ WebInterface Yes
 # Restrict access to the server...
 <Location />
   Order allow,deny
+  Allow From 127.0.0.1
 </Location>

 # Restrict access to the admin pages...
 <Location /admin>
   Order allow,deny
+  Allow From 127.0.0.1
 </Location>

 # Restrict access to configuration files...

ccpdを起動して,テスト印刷してみる.

$ sudo service ccpd start

ccpdがシステム起動時に起動するか確認すると起動しないようになっている

$ sudo systemctl is-enabled ccpd
ccpd.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled ccpd
disabled

ccpdを自動起動するようにしようとすると怒られる.

$ sudo systemctl enable ccpd
ccpd.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ccpd
update-rc.d: error: ccpd Default-Start contains no runlevels, aborting.

/etc/init.d/ccpd を少し修正して怒られないようにして再度登録.

$ sudo vi /etc/init.d/ccpd
$ sudo git -C /etc diff -- /etc/init.d/ccpd
diff --git a/init.d/ccpd b/init.d/ccpd
index f14cb8c..bdac57e 100755
--- a/init.d/ccpd
+++ b/init.d/ccpd
@@ -1,5 +1,13 @@
 #!/bin/sh
 # startup script for Canon Printer Daemon for CUPS (ccpd)
+### BEGIN INIT INFO
+# Provides:          my-service-name
+# Required-Start:    $all
+# Required-Stop:
+# Default-Start:     2 3 4 5
+# Default-Stop:
+# Short-Description: your description here
+### END INIT INFO

 if [ `ps awx | grep cupsd | grep -v grep | wc -l` -eq 0 ]; then
		while [ `ps awx | grep cupsd | grep -v grep | wc -l` -eq 0 ]
$ sudo systemctl enable ccpd
ccpd.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable ccpd
$ sudo systemctl is-enabled ccpd
ccpd.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install is-enabled ccpd
enabled
環境
$ w3m -dump http://192.168.1.14/cab/dev_info.shtml | grep 製品
│     製品名 :     │ LBP9100C                       │
│ 製品バージョン : │ 1.16                           │
$ dpkg-query -W cups* cndrvcups*
cndrvcups-capt  2.71-1
cndrvcups-common        3.21-1
cndrvcups-lipslx
cndrvcups-ufr2-uk
cndrvcups-ufr2-us
cups    2.2.12-2ubuntu1
cups-browsed    1.25.11-0ubuntu1
cups-bsd        2.2.12-2ubuntu1
cups-client     2.2.12-2ubuntu1
cups-common     2.2.12-2ubuntu1
cups-core-drivers       2.2.12-2ubuntu1
cups-daemon     2.2.12-2ubuntu1
cups-filters    1.25.11-0ubuntu1
cups-filters-core-drivers       1.25.11-0ubuntu1
cups-filters-ippusbxd
cups-ipp-utils  2.2.12-2ubuntu1
cups-pdf
cups-pk-helper  0.2.6-1ubuntu3
cups-ppdc       2.2.12-2ubuntu1
cups-server-common      2.2.12-2ubuntu1
cupsys
$ lsb_release -dr
Description:    Ubuntu 19.10
Release:        19.10
$ uname -m
x86_64

RT57iの文字コードがShift-JISで困る(GNU screenで文字コード変更)

RT57i IMG 20191029 154203

ハードオフでジャンク扱いで1,100円のYAMAHA RT57iを見かけました.
その時はスルーしたのですが,少し確認すると2003年発売のものなのに去年もFWがリリースされていてADSLの低速回線ならまだ使えるのではと買ってきました.

電源を入れて中を覗くと普通に動きそうです.
しかし日本語を吐いてるぽいけど文字コードが…….

> help
1) "?"��͂ÿ���ƁA�R�}���h��̂ÿ��m�肵�Ă��Ȃ��ꍇ�ɂ͂�̎ÿ��_��͉ÿ\�ȃL
   �[���[��̌ÿ�̈ÿꗗÿ��\�����܂��B
   �R�}���h��̂ÿ��m�肵�Ă����̃ÿRÿ�}����̓�͌ÿ`ÿ���Ɛ���\�����܂��B

2) �L�[�͎ÿ��ɂ͎��Ɏ����R�}���h�ŁA�L�[���[��̕ÿ⊮ÿ�A�ߋ���͂ÿ����R�}���h��
   �Ăяo���A�J�[�\��̈ÿړÿ���͕ÿ���̍ÿ폜���ł��܂��B

     ���ӁF Ctrl + X�́ÿAÿCtrl�L�[����Ȃ���X�L�[������Ƃ�\���܂��B

   --------------------------------------------------------------
   �L�[���[��̕ÿ⊮ÿ                 : Tab�L�[
   --------------------------------------------------------------
   �ߋ���͂ÿ����R�}����̌ÿĂÿяo�� : Ctrl + p �A�܂�͏ÿ���L�[
   ��̃ÿRÿ�}����̌ÿĂÿяo��           : Ctrl + n �A�܂�͉ÿ����L�[
   --------------------------------------------------------------
   �J�[�\����E�ɂP�������ړ�       : Ctrl + f �A�܂�͉ÿEÿ���L�[
   �J�[�\����ɂP�������ړ�       : Ctrl + b �A�܂�͍ÿ����L�[
   �J�[�\����s���Ɉړ�             : Ctrl + e
   �J�[�\����s���Ɉړ�             : Ctrl + a
   --------------------------------------------------------------
   �R�}���h���s�����ɉ�s         : Ctrl + c
   �J�[�\���̂ÿPÿ������폜         : Ctrl + d
---��---

Shift-JISぽいので端末の文字コードを変更します.

こういうことがあるのでGNU screenにワンタッチで文字コードが変更できるようにして…….変更されない?
Shift-JISの設定がないですね.そういえば以前はbind keyで設定していたけど当時最後のShift-JIS環境のNEWSマシン破棄時に消してしまっていたのでした…….

とりあえずGNU screenだと Ctrl +a :encoding sjis でShift-JISに切り替えることが出来ます.
(utf8に戻すときは Ctrl +a :encoding utf8 )

> help
1) "?"を入力すると、コマンド名称が確定していない場合にはその時点で入力可能なキ
   ーワードの候補の一覧を表示します。
   コマンド名称が確定していればそのコマンドの入力形式と説明を表示します。

2) キー入力時には次に示すコマンドで、キーワードの補完、過去に入力したコマンドの
   呼び出し、カーソルの移動や入力文字の削除ができます。

     注意: Ctrl + X は、Ctrlキーを押しながらXキーを押すことを表します。

   --------------------------------------------------------------
   キーワードの補完                 : Tabキー
   --------------------------------------------------------------
   過去に入力したコマンドの呼び出し : Ctrl + p 、または上矢印キー
   次のコマンドの呼び出し           : Ctrl + n 、または下矢印キー
   --------------------------------------------------------------
   カーソルを右に1文字分移動       : Ctrl + f 、または右矢印キー
   カーソルを左に1文字分移動       : Ctrl + b 、または左矢印キー
   カーソルを行末に移動             : Ctrl + e
   カーソルを行頭に移動             : Ctrl + a
   --------------------------------------------------------------
   コマンドを実行せずに改行         : Ctrl + c
   カーソル上の1文字を削除         : Ctrl + d
---つづく---

見えました.

.screenrc にも設定( bind ^J encoding sjis )を入れておきましょう.Ctrl+a Ctrl+j でShift-JISに切り替えられるようになりました.(Tmuxでの手順は見当たらず)

  bind ^U encoding utf8
  bind ^E encoding euc
+ bind ^J encoding sjis

他の方法としてRT57iの設定で英語にしたりできそうな気がしますが未確認.

そんなこんなでこれまでのADSLモデムをルータ機能は使わずモデムとしてだけ利用するようにしてRT57iからPPPoEで繋ぐようにしました.
これまでPPPoE接続に30分程,調子が悪いと1時間くらいかかっていましたが一瞬で接続されるように.安定度も増しました.
ずっと同じ構成なのにだんだん接続時間が伸びていたのでアナログ回線が劣化して不安定になっていたのかと思っていたのですがADSLモデムが原因だったようです.(ということはモデム機能もそろそろ壊れてしまう可能性……)

ただ,speedtestでは調子がいいときは8Mbほど出ていたのが7Mbになったので少し速度低下が?でもずっと安定したのでこっちのほうがいい感じです.(2,3日に一回回線が切れて再接続に30~60分とか動画が数分おきに止まるとか画像の読み込みに失敗したりとかだった)

$ speedtest-cli --simple
Ping: 92.066 ms
Download: 7.00 Mbit/s
Upload: 1.10 Mbit/s

まだざっくりとした設定なのでマニュアルを見ながらもう少し設定詰めてみます.

環境
$ dpkg-query -W screen byobu
byobu   5.125-0ubuntu1
screen  4.6.2-1ubuntu1
$ lsb_release -dr
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
$ uname -m
x86_64

Windows 10のisoファイルをWoeUSBでUSBフラッシュメモリに書き込み

balenaEtcher でUSBフラッシュメモリにWindows 10のisoイメージを書き込もうとしたのですが,このようなメッセージが表示されました.

balena etcher 20191029 12:10:49 18415 40

Windowsのイメージは特殊なのでそれを処理できるプログラムを紹介しています.Linuxでは WoeUSB を勧めています.

UbuntuではPPAがあるようなのでこれを導入します.

$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt update
$ sudo apt install woeusb

起動します.

$ sudo -H woeusb

画面はこんな感じでした.

woeusb01 20191029 13:10:27 27379

実際に書き込みをするときはこんな感じ.Soureにisoファイルを指定して,File stysremに「NTFS」を選択,Taeget deviceに対象のUSBフラッシュメモリを指定しました.はじめFATを選択したのですがエラーとなりました.NTFSだとOK.FATの4GB制限に引っかかったのかもしれません.

woeusb02 20191029 13:10:20 3649

ここで Install ボタンを押すことでプログレスが表示されて導入が開始されます.

しばらく待つと書き込み終了.出来上がったUSBフラッシュメモリをPCに接続して起動すると無事Windows 10のインストーラが起動しました.

環境
$ ls -s /media/mk/6647-4A7F/iso/Win10_1903_V2_Japanese_x64.iso
5202048 /media/mk/6647-4A7F/iso/Win10_1903_V2_Japanese_x64.iso
$ dpkg-query -W woeusb balena-etcher-electron
balena-etcher-electron  1.5.51
woeusb  3.3.0-1~webupd8~eoan0
$ lsb_release -dr
Description:    Ubuntu 19.10
Release:        19.10
$ uname -a
Linux x201i 5.3.0-19-generic #20-Ubuntu SMP Fri Oct 18 09:04:39 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

iPhone 7(iOS12)をUbuntu 19.10でmountしてデータコピー

借りたiPhone 7で撮影した動画をUbuntu 19.10 amd64にコピーしました.その時のメモです.
以前iPhone 3GSを利用していてファイルコピーやテザリングを利用していましたがそれ以来のiPhoneマウントでした.

必要パッケージの導入.

$ sudo apt install ifuse libimobiledevice-utils

iPhoneをUSB経由で接続.

その時のdmesgはこんな感じでネットワークはもう使えそう.(未確認)

[  +0.028241] usb 1-1.1: New USB device found, idVendor=05ac, idProduct=12a8, bcdDevice= 9.01
[  +0.000006] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  +0.000004] usb 1-1.1: Product: iPhone
[  +0.000003] usb 1-1.1: Manufacturer: Apple Inc.
[  +0.000003] usb 1-1.1: SerialNumber: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[  +0.000334] usb 1-1.1: Device is not authorized for usage
[  +0.005480] usb 1-1.1: authorized to connect
[  +0.787707] ipheth 1-1.1:4.2: Apple iPhone USB Ethernet device attached
[  +0.130956] ipheth 1-1.1:4.2 enp0s26u1u1c4i2: renamed from eth0

でもマウントはまだ出来ないのでペアリングします.初回はエラーになります.

$ idevicepair pair
ERROR: Please accept the trust dialog on the screen of device xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx, then attempt to pair ag
ain.

このときiPhone画面で「このコンピュータを信頼しますか?」と聞かれるので「信頼」を選びます.

iPhone7 auth

信頼した後に再度pair

$ sudo idevicepair pair
SUCCESS: Paired with device xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

後はNautilusでUSBメモリのようにマウントしてコピーできました.

環境
$ dpkg-query -W ifuse libimobiledevice-utils nautilus
ifuse   1.1.4~git20181007.3b00243-1
libimobiledevice-utils  1.2.1~git20181030.92c5462-1
nautilus        1:3.34.1-1ubuntu1
$ lsb_release -dr
Description:    Ubuntu 19.10
Release:        19.10
$ uname -m
x86_64
  • Apple iPhone 7 / iOS 12.3.1

Ebook reader(files_reader)を有効にしてNextcloud 16を動かなくしてしまう

Nextcloudをいじっていたらエラー画面に><

Nextcloud 20191018 16:10:02 29472

表示されているリクエストIDでログを検索してjqで展開します.

$ sudo grep 'iFqSO6b3lcl9qAXbLJXt' nextcloud.log | jq .|lv

この辺りがエラーのよう.
files_reader アプリに問題があるようです.

  "message": {
    "Exception": "Error",
    "Message": "Class 'OCP\\Config' not found",
    "Code": 0,
    "Trace": [
      {
        "file": "/var/www/files.matoken.org/apps/files_reader/lib/Hooks.php",
        "line": 41,
        "function": "get",
        "class": "OCA\\Files_Reader\\Config",
        "type": "::",
        "args": [
          "epub_enable",
          "true"
        ]
      },
      {
        "file": "/var/www/files.matoken.org/lib/private/legacy/hook.php",
        "line": 106,
        "function": "announce_settings",
        "class": "OCA\\Files_Reader\\Hooks",
        "type": "::",

とりあえずoccコマンドで`files_reader` を無効にしてエラーは解消されました.

$ php ./occ app:disable files_reader
files_reader disabled

今回エラーになったEbook reader(files_reader)はアプリストア内で確認するとNextcloud 9~13 でした.

しかし,Nextcloudのアプリ画面では「未テストのアプリを有効にする」といった警告がないので導入してしまう…….

Nextcloud 20191018 16:10:43 6871

IssueやPRは上がっているようです.

環境
$ php ./occ app:list|grep files_reader
  - files_reader
$ php ./occ status|grep version:
  - version: 16.0.5.1
$ dpkg-query -W php
php     2:7.3+69
$ lsb_release -dr
Description:    Debian GNU/Linux 10 (buster)
Release:        10
$ uname -m
x86_64

Ubuntu 19.10 Eoan Ermine リリース

Ermine lines by Gustavo Brenner

予定通り Ubuntu 19.10 Eoan Ermine がリリースされました.

個人的なトピックはi386 archtectureがサポートされなくなった,インストーラでのZFS root対応,Raspberry Pi 4対応辺り,環境があればWPA3対応,NVIDIA driverのインストーラー同梱も便利そうです.

問題点で気になるところはログイン画面でシャットダウン,再起動が出来ないところや Raspberry Pi 3 A+ が起動できなくなっているあたりでしょうか.どちらもバグ扱いになっているので近いうちに修正されるでしょう.

19.10は通常リリースでサポート期間も9ヶ月しか無いですし大体の人はLTSな18.04か20.04を待ったほうがいいでしょうが,新しい機能を試してみたい人は楽しめるのではないでしょうか.

ubuntu 19.10 neofetch

Ubuntu 19.10 (Eoan Ermine)のインストーラにZFSの選択肢が

Ubuntu 19.10のインストーラでZFSを選択できるようになったと見かけて試してみました.

現在BETAのインストーラ( Ubuntu 19.10 (Eoan Ermine) Beta )には未だ入っていなくて,dailyのみのようです.
今回は daily-live 20191011 を利用しました.

イメージを入手して確認
$ wget -c http://cdimage.ubuntu.com/ubuntu/daily-live/20191011/SHA256SUMS \
          http://cdimage.ubuntu.com/ubuntu/daily-live/20191011/SHA256SUMS.gpg \
          http://cdimage.ubuntu.com/ubuntu/daily-live/20191011/eoan-desktop-amd64.iso
$ sha256sum -c SHA256SUMS
eoan-desktop-amd64.iso: OK
$ gpgv --keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg ./SHA256SUMS.gpg ./SHA256SUMS
gpgv: Signature made Fri 11 Oct 2019 04:48:37 PM JST
gpgv:                using DSA key 46181433FBB75451
gpgv: Can't check signature: No public key
gpgv: Signature made Fri 11 Oct 2019 04:48:37 PM JST
gpgv:                using RSA key D94AA3F0EFE21092
gpgv: Good signature from "Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>"

インストーラを起動して画面を進めていくと,「インストールの種類」でZFSの選択がありました.
eaon zfs Screenshot ubuntu19.04 2019 10 13 00:55:43

EXPERIMENTAL: Erase disk and use ZFS
Warning: This will delete all your files on all operating systems, This is experimental and ma cause data loss. Do not use on production systems.

仮想マシンのテスト環境なのでZFSを選んで進めます.

eaon zfs 20191013 01:10:48 17155

確認画面のメッセージが ext4 になっていますがそのまま進めるとZFSになったのでメッセージの書き換えがまだされていないのでしょう.

よく見たら vda1 のことでここは /boot/grub に割り当てられていました.

$ mount |grep vda1
/dev/vda1 on /boot/grub type ext4 (rw,relatime,errors=remount-ro)

add)
解りにくからってことでバグとして上がっていました.20.04で修正されそう.

  • Bug #1847719 “zfs “Write to change disks” message prints that an…” : Bugs : ubiquity package : Ubuntu
  • インストールが終了してインストーラからの再起動でフリーズしたようで1時間ほど前っても進まなかったので強制再起動しましたが無事起動しました.

    eaon zfs 20191013 01:10:30 12924

    ファイルシステムもZFSになっています :)