鹿児島らぐの「鹿児島Linux勉強会 2018.05」に参加

DP1M0523

今月も一人.でもドタ参あるかもってことで鹿児島市に向かいます.てことで今月もポタリング日記です.
今回は海岸線で桜島フェリー乗り場まで,その後なんとなく関吉の疎水溝を見て来ました.帰りは垂水フェリー経由で帰宅.
技術要素はありません.

先月はけぶっていて対岸が見えなかったけど今月は神川から開聞岳だけでなく桜島もよく見えました.
DP1M0436DP1M0437

例によって高須からはとぎれとぎれの旧大隅線のサイクリングロードを北上.
DP1M0438DP1M0439DP1M0441
菅原小学校跡の施設,先月は工事中でしたが今月はある程度舗装が完成してFanRideまでの道が出来ていました.工事自体は9月迄なのでウギは正門の方を工事するのかな?
DP1M0442DP1M0443DP1M0444DP1M0445

菅原からCR途切れたところからは旧道を利用.少しだけ獲得標高減るけど距離は伸びる?古江手前からCRで霧通りを降りてトンネル.裏道で古江漁協前を通って郵便局の先の辺りまで.信号や大きな交差点が避けられます.ここの公園も設備チェックしようと思ってたんだけど忘れてました.
DP1M0449DP1M0450DP1M0451DP1M0452DP1M0453DP1M0454DP1M0456

しばらく前から垂水市街地の信号機は薄いLEDの信号機に.薄くてなんか強度心配に.
DP1M0457

荒崎から海潟あたりの裏道は今回は使わず.江ノ島あたりの路面が綺麗だと良いんですけどね.路面が悪いので疲れます.
DP1M0459DP1M0461DP1M0462DP1M0463

桜島フェリーで鹿児島市へ.
New photo added to galleryDP1M0467DP1M0470

結構時間があるので先日匿名掲示板で近所に住んでいるという人に教えてもらった「関吉の疎水溝」に行ってみることに.全く下調べしていないのでフェリーの中でちょっと地図を見ただけ.多分県道25号を進むと看板か何かがあるのではないかと当たりをつけて向かいます.吉野の方だからきっと登りだろうけど7~8km程度なのでどうにでもなるでしょう.案外細いのに交通量のある道でした.角度は緩やかだけど標高200m程上って少し下る感じ.看板は新しいものが何箇所かあったので地図を確認しなくて住んで良かったです.

現地にはボランティアの解説をしてくれる方が2名いらっしゃって説明をしてもらいながら観光できました.ここから取水して集成館(今の仙巌園内にある)までの約7kmの水路を作ったそう.その水で水車を回し,蒸気機関になるまでの動力として使われていたそう.
住宅の開発で現在は途中で途切れているけれど今もそこまでは水路は続いていて灌漑などに使われているそう.
夏場涼しそうな場所でした.

DP1M0471DP1M0473DP1M0474DP1M0478DP1M0481DP1M0482DP1M0483DP1M0484DP1M0486DP1M0489DP1M0492DP1M0494DP1M0495DP1M0496

水路沿いに道路はあるか聞いたらあるってことだったので途切れるところまで水路をたどってみました.歩行者や自転車じゃないと無理な細い道もあるので自転車がおすすめ.
水路が途切れたところからは多分あっちかなーという感じで住宅地を突っ切って帰りました.獲得標高は減ったのでちゃんとルートを調べれば坂道少ないルートがありそう.
DP1M0497DP1M0497DP1M0499DP1M0500DP1M0502DP1M0503DP1M0504DP1M0505DP1M0511DP1M0512

天文館に帰ってきてまだ時間があったのでジュンク堂とダイソーアオヤマ,Can☆Doに.ジュンク堂ではO’Reillyのフェアをやっていました.カタログも.ダイソーにはminiUSB Cableがなくなっていました.棚が移動しただけだと良いのですが見当たらず.Can☆DoはUSB Cableがごっそりなくなって補充されていませんでした.タイミングが悪かったですね.
New photo added to galleryNew photo added to gallery

そろそろ時間なので今回の会場にしたジョイフル 鹿児島中央駅前店へ.そういえばこのお店は2度めですが1度目に来た時はまだ西鹿児島駅なのにこのジョイフルは鹿児島中央駅前店になっていた気がします.
DP1M0513DP1M0514

駐輪場,駐車場は有料でした.自転車の駐輪は2時間まで無料.12時間ごとに200円でした.
店内は思ったより混んでいました.でも禁煙席の一番奥の席を確保.足元に電源もありWi-Fiも問題なく利用できました.結構旅行者の方も利用している感じで待ちはあまりでませんがだいたい席は埋まっている感じです.勉強会の会場としては先月の西鹿児島店のほうがよさそうです.駅の西側に鹿児島中央店もあるのですが,駅からのアクセスが良い分このお店より混んでそうな気がします.
値上がりしたモーニングを食べて,GPSロガーからデータを吸い出して写真にジオタグを付けてアップロードとかしつつ #IoTSecJP の同人誌を読んでいたらあっという間に時間になりました.

DP1M0523DP1M0524DP1M0525DP1M0526

帰りは寄り道あまりせずなんか寿がきや感のあるニシムタスカイマーケットでコッペパン(55円!)と豆乳を買って垂水フェリー経由で帰宅しました.
DP1M0527DP1M0528DP1M0529DP1M0530DP1M0531DP1M0533DP1M0535DP1M0536

次回は6月の1,2週目辺りかなと思っています.

鹿児島らぐの「鹿児島Linux勉強会 2018.04」に参加

DP1M0435

鹿児島らぐの「鹿児島Linux勉強会 2018.04」に参加したけど一人.
てことでポタリングの様子をお楽しみください?

錦江町から海岸線沿いで北上.
DP1M0369DP1M0370DP1M0372DP1M0373
高須から旧大隅線跡のサイクリングロードが飛び飛びであるのでそちらを利用.ちなみに頻繁に車止めがあるので速度や体力的には普通に道路を走ったほうが良いです.
DP1M0374DP1M0375DP1M0376DP1M0378
なんか海藻が干してあったり.
DP1M0382DP1M0383
菅原小学校跡が宿泊型体験施設になるらしいのdすがそこの工事をしていたり.
DP1M0384DP1M0385DP1M0386DP1M0387DP1M0389DP1M0390DP1M0391DP1M0392DP1M0393DP1M0394DP1M0395DP1M0396DP1M0398
古江から上がったところの自転車道が開通していて便利になっていたり.
DP1M0399DP1M0400DP1M0401DP1M0402DP1M0403DP1M0405DP1M0406
何時もは桜島経由ですが,今回は産業道路に行きたいので垂水フェリーを利用しました.自転車+同乗者で500円です.普通の大人1人が490円なので割安に感じます.
DP1M0409DP1M0412DP1M0415DP1M0416DP1M0417
鹿児島に渡って東海町のハードオフへ.あまりこれと言ったものが見当たらず.でもジャンク扱いのFDが1枚108円もしてて驚いたり.
New photo added to gallery
マンガ倉庫にもちょっと寄ってみたのですが,こちらにはタイプライターが!ちょっと欲しくなりました.あとでヤフーオークションなどを見てみると3桁円くらいかあるようなので買うならそちらのほうが安いかも?
DP1M0419DP1M0420
天文館へ移動してちょっと銀行にと思ったら三井住友銀行が移転していました.あとはダイソーでminiUSBケーブルを入手.本屋にも寄りたかったけど時間切れ.
DP1M0423DP1M0426

そういえばこの日は屋台村リニューアルオープンだったらしい

DP1M0427

駅前の再開発を見たり

DP1M0428

赤い市電見たり.(帰ってから広島のニュースを見かけておんなじだと思ったり)

DP1M0429

誰か来るかもと一応ジョイフルに.座席は禁煙席の一番奥に.少しWi-Fiの電波が弱かったです.電源席は延長コードがないと辛いかもという感じの場所にしか見当たらず.席自体は常に1テーブル以上開いてるし学生らしき集団がテキスト開いてるところもあって長居しやすい感じでした.
ここでは主に今回のネタの一つだったUSB-OTGでHIDの検証し直しをしてました.

DP1M0430DP1M0431DP1M0435

17:00過ぎまでジョイフルに居て,その後与次郎のダイソーに寄って垂水フェリーで帰宅しました.

鹿児島らぐの「鹿児島Linux勉強会 2017.12」に参加

公開していたつもりが出来ていなかったです.半年前><

2017-12-09 にTUKUDDOさんにて鹿児島らぐの鹿児島Linux勉強会 2017.12がありました.
同一会場内で軽量マークアップ言語のイベントがあって合同でどうかという話もありましたが,日程も迫っていてそちらの参加者からするとLinuxネタは謎の発表になるだろうし時間も足りないだろうなと思ったので断り隣のテーブルで独立開催?でした.参加者が居ない状態からなら参加者が判断できるので併催ありだと思うんですけどね.

IMGP5003IMGP5004IMGP5006

参加者は圏外参加者1名を含む3名でした.
以下のような話題がありました.

その他こんどうさんにより各種シールをいただきました.

シールは私( @matoken )が預かっています.次回以降の勉強会で持っていくのでくれと言ってください(持っていってるのに出し忘れることとかもあるので……).
シールのネタがわからない/知りたい人は末代やmikutterなどをチェック.

その他,Raspberry Pi で機械学習だと秋月電子で売られているMovidius Neural Compute Stickとかあるよねとか.

自転車に古いAndroidを積んでいるのは同じだけどもっと割り切って自転車が盗難にあったら(振動を検知したら)メールを飛ばして(Secrt Control),後はAndroidを探すアプリで探すようにしているという人やらも.

懇親会は2名で鹿児島王将 中町店へ.夕方運んでるのかと思っていたのですが想像と違い空いてました.案外ここでの懇親会もいいかもしれません.

IMGP5009

次回の開催は未定です.MLをチェックしてください.

IMGP4919IMGP4922IMGP4926IMGP4927IMGP4932IMGP4937IMGP4941IMGP4943IMGP4946IMGP4948IMGP4951New photo added to galleryIMGP4957IMGP4971IMGP4979IMGP4991New photo added to galleryIMGP5003New photo added to galleryDSC_0170.JPGNew photo added to galleryNew photo added to gallery

Nextcloudのファイルがロックされて困る

Nextcloud clientがエラーを出力するようになりました.アイコンも赤に><
エラーメッセージはこんな感じでロックが掛かっているようですが心当たりはありません.サーバのログも同様でした.

 2018/05/18 20:57:58,                     Documents/somefile.md,                     Nextcloud,Error transferring https://files.matoken.org/remote.php/dav/files/matoken/Documents/somefile.md - server replied: Locked ("Documents/somefile.md" is locked)

DuckDuckGoで検索して以下のフォーラムを見つけました.

参考にdbでlockが1になってるものを消したら今回は直りました.
occ files:scanは今回効かなかったです.

$ sudo -u www-data php ./occ maintenance:mode --on
$ mysql -u nextcloud -p -D nextcloud -e 'delete from oc_file_locks where 1'
Enter password: ***********
$ sudo -u www-data php ./occ maintenance:mode --off

ちょっとconfig.phpを見直したりしてみようと思います.

環境

client

$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64
$ dpkg-query -W nextcloud-client
nextcloud-client        2.3.2-bata1-1

server

$ lsb_release -d
Description:    Debian GNU/Linux 9.4 (stretch)
$ uname -m
x86_64
$ sudo -u www-data php ./occ -V
Nextcloud 13.0.2

GNU socialでNodeInfoを有効にする

GNU socialのIssueで気になるものが.

インスタンス情報を確認できるエンドポイントがあると便利だよねってIssueでそれを実現する以下のプラグインが紹介されていました.

これがなくても以下で補足されているようですが,もっと簡単に情報を提供できそうです.

入れてみました.

$ git clone https://github.com/chimo/gs-nodeinfo
$ sudo -u www-data rsync -avn --exclude="gs-nodeinfo/.git/" ./gs-nodeinfo /var/www/gnusocial.matoken.org/plugins/
$ sudo -u www-data rsync -av --exclude="gs-nodeinfo/.git/" ./gs-nodeinfo /var/www/gnusocial.matoken.org/plugins/
$ sudo mv /var/www/gnusocial.matoken.org/plugins/gs-nodeinfo /var/www/gnusocial.matoken.org/plugins/Nodeinfo
$ echo 'addPlugin('Nodeinfo');' | sudo tee -a /var/www/gnusocial.matoken.org/config.php 
addPlugin(Nodeinfo);

とりあえず動かしてみます.

$ w3m -dump https://gnusocial.matoken.org/.well-known/nodeinfo
{"links":[{"rel":"http:\/\/nodeinfo.diaspora.software\/ns\/schema\/2.0","href":"https:\/\/gnusocial.matoken.org\/nodeinfo\/2.0"}]}

見にくいのでjqに食わせてみます.

$ w3m -dump https://gnusocial.matoken.org/.well-known/nodeinfo|jq
{
  "links": [
    {
      "rel": "http://nodeinfo.diaspora.software/ns/schema/2.0",
      "href": "https://gnusocial.matoken.org/nodeinfo/2.0"
    }
  ]
}

詳細情報も.こちらは10秒くらい掛かります.

$ w3m -dump https://gnusocial.matoken.org/nodeinfo/2.0|jq
{
  "version": "2.0",
  "software": {
    "name": "gnusocial",
    "version": "1.2.0-beta5"
  },
  "protocols": [
    "ostatus"
  ],
  "services": {
    "inbound": [
      "atom1.0",
      "rss2.0",
      "gnusocial"
    ],
    "outbound": [
      "atom1.0",
      "rss2.0",
      "twitter",
      "gnusocial"
    ]
  },
  "openRegistrations": false,
  "usage": {
    "users": {
      "total": 5,
      "activeHalfyear": 2,
      "activeMonth": 1
    },
    "localPosts": 3448,
    "localComments": 427
  },
  "metadata": {}
}

使われるかわからないけどとりあえず.

Mozcでシークレットモードやサジェストのオンオフをするコマンド機能を試す

以下のスライドを見て案外絵文字対応サービス多いのかもと思ったけど入力に日本語入力システムを使うとパスワードを覚えちゃうのが嫌だなとか,Emoji Pickerみたいなのを使うのも面倒.Mozcにはシークレットモードがあるけど( mozc_tool --mode=config_dialog のプライバシータブ )設定画面を呼び出して設定しないといけないので面倒.ショートカットか何かで切り替えが出来ないかなと探してみました.

Google日本語入力のヘルプページを見ても載っていない

フォーラムを検索すると以下ような要望と解答が.

試してみると問題なく動作するようです.

shutter_18-05-03_18:22:31_001

以下のページを見ると「こまんど」以外にも複数の単語で切り替えが出来るようです.

  • Google Developers Japan: Google 日本語入力の開発版をアップデートしました。(1.4.1003.10x)

    「コマンド」機能が追加されました。「コマンド」と入力し、変換候補を選択することで、設定ツールを起動することなく、【シークレットモード】のオン・オフ、および【プレゼンテーションモード】のオン・オフを変更することができます。

    「秘密」「シークレット」「シークレットモード」「プライバシー」「プライベート」と入力することで、【シークレットモード】のオン・オフを変更することができます。
    「サジェスト」「予測」「予測入力」「予測変換」「プレゼンテーション」「プレゼン」と入力することで、【プレゼンテーションモード】のオン・オフを変更することができます。

「きょう」「きのう」「おととい」「ことし」「きょねん」などで年月,「2018ねん」等で和暦,郵便番号で住所,「ばーじょん」でMozcのバージョンなどは知っていましたが「こまんど」は知りませんでした.
この辺りの一覧をヘルプページ辺りに作ってくれるといいのになとか.

環境

$ dpkg-query -W mozc-server
mozc-server     2.23.2815.102+dfsg-1
$ neofetch
       _,met$$$$$gg.          mk@x200 
    ,g$$$$$$$$$$$$$$$P.       ------- 
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux unstable (sid) x86_64 
 ,$$P'              `$$$.     Model: 74574PJ ThinkPad X200 
',$$P       ,ggs.     `$$b:   Kernel: 4.14.0-2-amd64 
`d$$'     ,$P"'   .    $$$    Uptime: 8 hours, 52 minutes 
 $$P      d$'     ,    $$P    Packages: 5617 
 $$:      $$.   -    ,d$$'    Shell: bash 4.4.19 
 $$;      Y$b._   _,d$P'      Resolution: 1280x800 
 Y$$.    `.`"Y$$$$P"'         WM: awesome 
 `$$b      "-.__              Terminal: sakura 
  `Y$$                        Terminal Font: Fira Code 11 
   `Y$$.                      CPU: Intel Core 2 Duo P8400 (2) @ 2.267GHz 
     `$$b.                    GPU: Intel® GM45 Express Chipset 
       `Y$$b.                 Memory: 5292MiB / 7878MiB 
          `"Y$b._ 
              `"""                                    

OpenJDK で JOSM

Javaで動作するOpenStreetMapエディタのJOSMをLinux上のOpenJDKで動かすメモです.
Debian sid amd64 / Ubuntu 16.04 LTS ARM64 で確認しています.

JOSMの入手

JOSMを次のページから入手します.josm-tested.jar をよく使っています.

OpenJDKインストール

2015年12月くらいにはこんなメッセージが出ていて現在はJava 8以上が必要になっています.

このバージョンのJavaはもうすぐサポート対象から外れます。 Java 8以上にアップグレードしてください!

ここでは OpenJDK 8 を導入

$ sudo apt install openjdk-8-jre

javaの確認

OpenJDK 8になっている.もし違うバージョンが表示されたら次の項目へ.

$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

javaが複数入っていてjavaコマンドの結果が想定しているバージョンではない場合切り替える

OpenJDK 8の場合はここはスキップする.

$ sudo update-alternatives --config java

JOSM起動

-Dawt.useSystemAAFontSettings=onはフォントのアンチエイリアスを有効にするオプション.LCDの場合onの代わりにlcd.

$ java -jar -Dawt.useSystemAAFontSettings=on ./josm-latest.jar
追記)
他の環境だとこの辺のどれかが使えそう(未確認)

Amazon S3 互換のMinioをちょっとだけ試す

Amazon S3 互換のMinioを少し試してみました.MinioはGo製でマルチプラットホーム(Linux/Windows/macOS/FreeBSD等)で動作します.

Minioダウンロード

いろいろな環境で動作します.Linux amd64だけでもDocker, Snap, 単一バイナリなどが選べます.
今回はお手軽にバイナリで試します.

minio.sha256sumのファイル名はminio.RELEASE.2018-02-09T22-40-05を見ているようなので目diffで…….(minio.ascminioを見てますね.)

$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio.sha256sum
$ cat minio.sha256sum
98cf1e082368e3f57f2be39dd49b1abffca4068e6d3e859f300ae93b4e5f6a5a minio.RELEASE.2018-02-09T22-40-05Z
$ sha256sum -c minio.sha256sum 
sha256sum: minio.RELEASE.2018-02-09T22-40-05Z: そのようなファイルやディレクトリはありません
minio.RELEASE.2018-02-09T22-40-05Z: FAILED open or read
sha256sum: 警告: 一覧にある 1 個のファイルが読み込めませんでした
$ sha256sum minio
98cf1e082368e3f57f2be39dd49b1abffca4068e6d3e859f300ae93b4e5f6a5a  minio
$ wget https://dl.minio.io/server/minio/release/linux-amd64/minio.asc
$ gpg --verify minio.asc
gpg: 署名されたデータが'minio'にあると想定します
gpg: 2018年02月10日 07時40分19秒 JSTに施された署名
gpg:                RSA鍵12C74390F9AAC728を使用
gpg: "Minio Trusted <trusted@minio.io>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg:       この署名が所有者のものかどうかの検証手段がありません。
 主鍵フィンガープリント: 4405 F3F0 DDBA 1B9E 68A3  1D25 12C7 4390 F9AA C728

実行権を付与します.

$ chmod +x minio

ダウンロードページや READMEにはamd64のしか載っていませんが,以下のあたりを見ると386, ARM, ARM64などもあります :)

minio USAGE

$ ./minio -h
NAME:
  minio - Cloud Storage Server.

DESCRIPTION:
  Minio is an Amazon S3 compatible object storage server. Use it to store photos, videos, VMs, containers, log files, or any blob of data as objects.

USAGE:
  minio [FLAGS] COMMAND [ARGS...]

COMMANDS:
  server   Start object storage server.
  gateway  Start object storage gateway.
  update   Check for a new software update.
  version  Print version.

FLAGS:
  --config-dir value, -C value  Path to configuration directory. (default: "/home/mk/.minio")
  --quiet                       Disable startup information.
  --json                        Output server logs and startup information in json format.
  --help, -h                    Show help.

VERSION:
  2018-02-09T22:40:05Z

Minioをサーバとして実行

ストレージに/media/mk/diskを指定して実行しています.

$ ./minio server /media/mk/disk
Created minio configuration file successfully at /home/mk/.minio

Drive Capacity: 4.5 GiB Free, 466 GiB Total

Endpoint:  http://192.168.2.200:9000  http://172.17.0.1:9000  http://127.0.0.1:9000
AccessKey: AUI0SRSWF5NOG1JLQNX6 
SecretKey: LJ3JI3+VR8aYQR/vCA9QjVkVF4xddkU76Bb1ZW84 

Browser Access:
   http://192.168.2.200:9000  http://172.17.0.1:9000  http://127.0.0.1:9000

Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
   $ mc config host add myminio http://192.168.2.200:9000 AUI0SRSWF5NOG1JLQNX6 LJ3JI3+VR8aYQR/vCA9QjVkVF4xddkU76Bb1ZW84

Object API (Amazon S3 compatible):
   Go:         https://docs.minio.io/docs/golang-client-quickstart-guide
   Java:       https://docs.minio.io/docs/java-client-quickstart-guide
   Python:     https://docs.minio.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
   .NET:       https://docs.minio.io/docs/dotnet-client-quickstart-guide

この状態で http://localhost:9000/ にアクセスすると以下のような画面にアクセスできてファイルの閲覧やダウンロードが出来ます.
※同じネットワークからも見えちゃうので注意.

4ed69fd748a6d8ed2a68bb70536f0bb4d76972822dea5a2f9c55aaed99d70541

Minio Client(mc)

Minio Client(mc)というコマンドラインクライアントもあるそうなので試してみます.
#mcというとファイラーと名前が当ってしまいますね. -> Midnight Commander

例によってこの辺を見ると各種環境のものがあります.

$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc.sha256sum
$ wget https://dl.minio.io/client/mc/release/linux-amd64/mc.asc
$ sha256sum -c mc.sha256sum
sha256sum: mc.RELEASE.2018-02-09T23-07-36Z: そのようなファイルやディレクトリはありません
mc.RELEASE.2018-02-09T23-07-36Z: FAILED open or read
sha256sum: 警告: 一覧にある 1 個のファイルが読み込めませんでした
$ cat mc.sha256sum
7367d2e7e14aea6ef1928c75d5965e7124f8027254007ccf7c51cbd83ed73386 mc.RELEASE.2018-02-09T23-07-36Z
$ sha256sum ./mc
7367d2e7e14aea6ef1928c75d5965e7124f8027254007ccf7c51cbd83ed73386  ./mc
$ gpg --verify ./mc.asc 
gpg: 署名されたデータが'./mc'にあると想定します
gpg: 2018年02月10日 08時07分39秒 JSTに施された署名
gpg:                RSA鍵12C74390F9AAC728を使用
gpg: "Minio Trusted <trusted@minio.io>"からの正しい署名 [不明の]
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg:       この署名が所有者のものかどうかの検証手段がありません。
 主鍵フィンガープリント: 4405 F3F0 DDBA 1B9E 68A3  1D25 12C7 4390 F9AA C728
$ chmod +x ./mc

mc USAGE

$ ./mc --help
NAME:
  mc - Minio Client for cloud storage and filesystems.

USAGE:
  mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...]

COMMANDS:
  ls       List files and folders.
  mb       Make a bucket or a folder.
  cat      Display file and object contents.
  pipe     Redirect STDIN to an object or file or STDOUT.
  share    Generate URL for sharing.
  cp       Copy files and objects.
  mirror   Mirror buckets and folders.
  find     Search for files and objects.
  stat     Stat contents of objects and folders.
  diff     List differences in object name, size, and date between folders.
  rm       Remove files and objects.
  events   Manage object notifications.
  watch    Watch for file and object events.
  policy   Manage anonymous access to objects.
  admin    Manage Minio servers
  session  Manage saved sessions for cp command.
  config   Manage mc configuration file.
  update   Check for a new software update.
  version  Print version info.

GLOBAL FLAGS:
  --config-folder value, -C value  Path to configuration folder. (default: "/home/mk/.mc")
  --quiet, -q                      Disable progress bar display.
  --no-color                       Disable color theme.
  --json                           Enable JSON formatted output.
  --debug                          Enable debug output.
  --insecure                       Disable SSL certificate verification.
  --help, -h                       Show help.

VERSION:
  2018-02-09T23:07:36Z

minioのurl, アクセスキー, シークレットキーを設定します.

$ ./mc config host add myminio http://192.168.2.200:9000 AUI0SRSWF5NOG1JLQNX6 LJ3JI3+VR8aYQR/vCA9QjVkVF4xddkU76Bb1Z
W84
Added `myminio` successfully.

lsしてみます.サブディレクトリは./mc ls s3 myminio/SUBDIRな感じで.

$ ./mc ls s3 myminio                                                                                               mc: <ERROR> Unable to list folder. The AWS Access Key Id you provided does not exist in our records.
[2015-10-14 19:34:12 JST]     0B ac100-simple-repart/
[2014-03-01 02:29:12 JST]     0B backup/
[2014-04-09 10:49:46 JST]     0B cubox-i/
[2016-03-10 13:04:52 JST]     0B flash-tmp/
[2015-10-14 19:34:48 JST]     0B image/
[2014-05-05 05:53:24 JST]     0B kobo/
[2015-10-14 19:34:26 JST]     0B nakasi-lmy47v/
[2014-02-28 00:14:16 JST]     0B opencocon.org/
[2017-12-09 02:28:42 JST]     0B pinebook/
[2017-03-01 19:49:58 JST]     0B raspifw/

多分しばらく前にサポートされたWinSCPやFileZilla Proでもアクセスできるのではないかと思います.

Let’s Encryptの更新に失敗する

最近はこんな感じでLet’s Encryptの証明書の更新を更新しているのですが今回失敗しました.
(DocumenteRootをFQDNにしている前提)

$ sudo /bin/sh -c "/usr/bin/find /etc/letsencrypt/renewal/*.conf -type f | /usr/bin/xargs /usr/bin/basename -s .conf | xargs -n1 -I{} /usr/bin/letsencrypt renew --webroot -w /var/www/{}/ -d {}"

こんなふうに怒られます.
(仕様が変わった?)

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Currently, the renew verb is capable of either renewing all installed certificates that are due to be renewed or renewing a single certificate specified by its name. If you would like to renew specific certificates by their domains, use the certonly command. The renew verb may provide other options for selecting certificates to renew in the future.

とりあえずはletsencrypt renewletsencrypt certonlyにしたら通りました.

$ sudo /bin/sh -c "/usr/bin/find /etc/letsencrypt/renewal/*.conf -type f | /usr/bin/xargs /usr/bin/basename -s .conf | xargs -n1 -I{} /usr/bin/letsencrypt certonly --webroot -w /var/www/{}/ -d {}"

これで更新できたと思ったら1つのドメインで失敗しています.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for files.matoken.org
Using the webroot path /var/www/files.matoken.org for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Failed authorization procedure. files.matoken.org (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://files.matoken.org/.well-known/acme-challenge/Be7Aiai4UH9CDqacTaEZOMH4SxSQbtFqxFcPXcCtJEs: "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>  
</head><body>
<h1>Not Found</h1>
<p"

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: files.matoken.org  
   Type:   unauthorized
   Detail: Invalid response from
   http://files.matoken.org/.well-known/acme-challenge/Be7Aiai4UH9CDqacTaEZOMH4SxSQbtFqxFcPXcCtJEs:
   "<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
   <html><head>
   <title>404 Not Found</title>
   </head><body>
   <h1>Not Found</h1>
   <p"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A record(s) for that domain
   contain(s) the right IP address.

ファイルをDoumentRootに置いてLet’s Encryptからアクセスされるのですがそこでそのファイルが見つからないと失敗しています.このドメインはhttpを設定していませんでした.
てことでapacheでRewriteの設定をしてあげると

RewriteEngine On
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

通りました.

$ sudo /usr/bin/letsencrypt certonly --webroot -w /var/www/files.matoken.org/ -d files.mato
ken.org
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Cert is due for renewal, auto-renewing...
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for files.matoken.org
Using the webroot path /var/www/files.matoken.org for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0003_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0003_csr-certbot.pem

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/files.matoken.org/fullchain.pem. Your cert
   will expire on 2018-05-31. To obtain a new or tweaked version of
   this certificate in the future, simply run certbot again. To
   non-interactively renew *all* of your certificates, run "certbot
   renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

certbotのversionがかなり古いですね…….

$ dpkg -l|grep -i certbot
ii  certbot                               0.10.2-1                          all          automatically configure HTTPS using Let's Encrypt
ii  python-certbot                        0.10.2-1                          all          main library for certbot

てことでbackportのものに入れ替え.

$ sudo apt remove certbot
$ sudo apt install python-certbot-apache -t stretch-backports
$ apt show certbot
Package: certbot
Version: 0.21.1-1~bpo9+1
Priority: optional
Section: web
Source: python-certbot
Maintainer: Debian Let's Encrypt <letsencrypt-devel@lists.alioth.debian.org>
Installed-Size: 53.2 kB
Provides: letsencrypt
Depends: python3-certbot (= 0.21.1-1~bpo9+1), python3:any
Suggests: python3-certbot-apache, python3-certbot-nginx, python-certbot-doc
Breaks: letsencrypt (<= 0.6.0)
Replaces: letsencrypt
Homepage: https://certbot.eff.org/
Download-Size: 20.4 kB
APT-Manual-Installed: no
APT-Sources: http://ftp.jp.debian.org/debian stretch-backports/main amd64 Packages
Description: automatically configure HTTPS using Let's Encrypt
 The objective of Certbot, Let's Encrypt, and the ACME (Automated
 Certificate Management Environment) protocol is to make it possible
 to set up an HTTPS server and have it automatically obtain a
 browser-trusted certificate, without any human intervention. This is
 accomplished by running a certificate management agent on the web
 server.
 .
 This agent is used to:
 .
   - Automatically prove to the Let's Encrypt CA that you control the website
   - Obtain a browser-trusted certificate and set it up on your web server
   - Keep track of when your certificate is going to expire, and renew it
   - Help you revoke the certificate if that ever becomes necessary.
 .
 This package contains the main application, including the standalone
 and the manual authenticators.

N: There is 1 additional record. Please use the '-a' switch to see it

てことでclientが古かったのであまり参考になら無さそうなメモでした.

Devuan ascii armhf(Raspberry Pi)で時計合わせ

Raspberry PiにはRTCが付いていません.なのでシステム停止すると時間情報が飛んでしまいます.fake-hwclockが設定されていたら前回停止時(に近い)時間がファイルに保存されていてその時間に設定されますが,停止時の時間はカウントされないので時間がずれます.ということでネットワークが有効な場合ntpを参照して時計合わせをしたいです.
最近のDebianやRaspbianはsystemdなのでtimesyncd.confでNTP serverを指定してtimedatectlコマンドで有効にする感じだと思うのですが(既定値でそうなっている),Devuanは脱systemdなディストリビューションなのでこの方法は使えません.

$ sudo vi /etc/systemd/timesyncd.conf
$ sudo timedatectl set-ntp true`

詳細はman timesyncd.conf, man timedatectl

ということでntpdateを入れてみました.

$ sudo apt install ntpdate
$ sudo ntpdate 192.168.1.102
$ grep -A1 -B2 ntp /etc/rc.local
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  /usr/sbin/ntpdate 192.168.1.102
fi

長時間動かすならcrontabで定期的に設定したほうがいいかも?(若しくは何らかのntpd)

$ sudo -u root crontab -l|tail -2
@reboot /usr/sbin/ntpdate 192.168.1.102
3 3 * * *       /usr/sbin/ntpdate 192.168.1.102

追記)
このシステムはRaspbian stretchをDevuan asciiにdist-upgradeしたシステムなのでntpの設定がないだけかもしれません.Devuan asciiをクリーンインストールすれば必要ない設定かも(未確認)