投稿

ラベル(Linux)が付いた投稿を表示しています

メールサーバの移行

イメージ
 自前のメールサーバを停止 これまで、自ドメインのメールサーバはVPS上に構築していた。 ・Ubuntu Server ・Postfix ・Dovecot ・spamAssassinと、BlackListの利用 Spam対策を行ってきたし、サーバ上でメールをトリガーにして各種プログラムを動かしたりしてきた。 メールサーバのメンテナンスは結構面倒くさくて、  ・Disk容量のチェック  ・不正アクセスのチェック  ・各種セキュリティパッチの適用 など、手間がかかる。 そこで、外部のサーバを利用することに…。 結構安くて使い勝手の良さそうなのが、「さくらのメールボックス」 3年契約で、3070円とな…。  メールアドレスは自分のだけなので、20GBまで利用可能!  (Gmailより大きいねぇ) ということで、早速契約。 アカウント設定を行って、既存のDNSを書き換える。WHOISも書き換えて完了。 SMTPとIMAPが利用できればOK。 ちょうど、GoogleがSPF設定していないと受信しないし、DKIMおよびDMARCに対応していないメールを弾くようになったので、対応しているのを確認。 さくらサーバ自体は、これまでお客さんのサーバとして何件も利用しているので、利用方法も難しくはない。  Webメールにも対応しているので、いざという場合にもありがたい。 ということで、各メールソフトの設定を変更。  PC(常時使用する3台)とタブレット、スマートフォンと台数は多いがそれ程手間はかからない。 問題は、旧サーバで送受信したメールの履歴だけれど、これはThunderbrdを使ってローカルに保存することで回避。  本当は、サーバtoサーバでMailboxに残そうとも考えたんだけど、古いメールはそれ程必要ないし、ローカルにバックアップしてあれば凌げるので、良しとする。 移行時にDNSの反映で若干時間がかかったものの、問題なく送受信できるのを確認して、作業完了。  これでメンテナンスの手間が減るので、安いもんです。

Raspberry Pi5 が届いたので試用

イメージ
ラズパイ5ゲット!  国内での販売が開始されて、やっと入手できそうだったので早速注文。  少し高めだったけど、まあ仕方ないと…。  今回からSSDでの運用が可能らしいので、併せてNVMe用の拡張基板とNVMeも注文。  やっと、届いたのでSetupを行い動作検証した。  ここまでの費用   Raspberry Pi5 ¥17,800-   NVMe用拡張基板+256GB SSD  £40(≒¥7,922-)    イギリスのショップでしか扱っていないかったので…ポンド払いです。   Pi5用アクティブクーラ ¥1,009-  合計:26,731-  さて、今回届いたSSD等ですが、 Pimoroni社のこれ です。  SSDはADATAでした。 その前に、SDカードに新しいRaspbianOS(64bit)を書き込んで、起動&動作テストです。 まあ、普通に起動して動くところまでOK。  とりあえず、pi4も動かして、比較することに。 SDカードでの比較 とりあえず、現在の性能を比較するためにUnixbenchを走らせる。 $ git clone https://github.com/kdlucas/byte-unixbench $ cd byte-unixbench/UnixBench/ $ ./Run 結果は以下の通り 機種 Single Multi Pi4B 4GB 309.4 943.2 Pi5 8GB 939.6 2500.3 むむむ、SingleProcessorで3倍程度。MultiProcessorで2.65倍 性能アップしています。 これは期待が大きい! ただ、かなりCPUが発熱するのでとりあえず扇風機で冷やすことに。指で触ったら火傷した感じ(泣) (まだクーラが届いていないので…) NVMe装着 手順は、PIMORONI社のページにもあるが、念の為、国内の人柱も参考にする。 https://gigazine.net/news/20240126-raspberry-pi-5-ssd-boot/ https://note.com/coderdojoseishin/n/n07f11bc868f9 重複する内容や、手順を整理し、以下の手順で問題なく動作した。 手順は以下の通り  SDカードで起動する。 $ sudo raspi-config Advance

Pi-holeの設置

イメージ
 とにかく広告が鬱陶しい… ネットを使用していると、やたらとうるさい広告が出てくる。 PCの場合は気にならないが、スマートフォンを使用している場合、タッチしようとするところに表示されて、誤タッチによる画面遷移がイラッとするよね? ということで、少しでも対策をしてみようと…。 自宅での利用を想定しているので、あまり大掛かりな仕掛は面倒なので、DNSブロッキングを試すことに…。 どこのご家庭にもあるLinuxサーバ上に設定する(笑)  一応、ラズパイやNAS上でも動作するので、その手のマシンがあるなら即導入可ですね。 我が家の場合は外向けサーバを設置する関係上、2段ルータにしている。  そこで、Linuxサーバ上に細工し、内側向けの無線LANルータのDHCP設定を変更する方針で進める。 今回導入するのは、Pi-holeを選定。  面倒でなければ、hostsファイルに全部書きこめば完了だけど、ちまちま作業するのは手間なのと、ログ等の表示ツールも備えているので、利用状況が分りやすいという点で選択。 Pi-hole導入 Ubuntuを使っているので、   https://remoteroom.jp/diary/2020-07-17/ ここを参考にしようかと思ったが…。 すでにWebサーバとして稼働しているし、あまりインストールはしたくない。 ということで、Dockerを使用することに。   https://zenn.dev/superdaigo/articles/install-pi-hole-e2256cba673a06 ここを参考に、compose.yamlを作成 version: "3" services:   pihole:     container_name: pihole     image: pihole/pihole:latest     # network_mode: "host"  # For DHCP server     ports:       - "53:53/tcp"       - "53:53/udp"       - "8080:80/tcp"     environment:       # https://github.com/pi-h

ChromeOS上のLinuxでGUI表示がおかしい

イメージ
 ChromeOS軽いですね… 廉価なマシンだと、それなりにサクサク動くけれど、一瞬もたつくと言うか、引っかかる感じがする。  これが、ハイスペックなマシンで動かすと、本当に気持ちよく動作する。(まあ、これはChromeOSに限ったことではないですけど…) 起動とか、更新後の再起動とかも、本当にあっという間に完了するわけです。 さて、Chromeブラウザのバージョンも100を超えて、時の流れを感じています。 ブラウザの更新が出たということでChromeOSも同様にバージョン100を超えました。 当然、更新を行ない様子を見るわけです。 Linuxアプリの表示がおかしい ChromeOS側のアプリなどは問題なく動いています。 Androidアプリもざっと動かした感じでは問題なく動いている感じ。 Linux上のアプリがおかしいことに気づいた! フルスクリーンで使用するBraveブラウザを利用しているときは全く気づかなくて、Slackを使っていて、DBever上からDBのデータを確認しようとして最大化を解除したら…。  真っ黒な表示になってしまい、元に戻らなくなった。 Slackも一度、最大化を解除してウインドウサイズをResizeすると、同様な症状…。 BraveもThunderbirdも、vscodeも…全滅。 マウスカーソルを黒いウインドウ上で動かすと、ポインタのアイコンが場所によって変わるので、描画はされている感じ。  端末から起動して、エラーが表示されないか確認したが、どれも正常に動いている感じ。 一旦、終了して、再度アプリケーションを起動した場合、表示されるもののやはりリサイズすると真っ黒になる。 念の為、フィードバックをGoogleに送っておく。 改善方法を探る とはいえ、このままではLinux上のアプリがほぼ使えない状況なので、何とかしたい。 真っ先に浮かんだのは、Linuxの入れ直し。  しかし、これだけ設定を追加して、アプリも入れたので消すのはちょっと… バックアップ取ってあるので、書き戻してもよいが、正常に動く保証はない。 色々と探ってみると ChromeOS上のデフォルトLinuxは、Debian10なんだけど、どうやら最近のOSアップデートに伴ってDebian11が使えるようになっているような書き込みがチラホラ…。 中のDebianをdist-up

ChromeOSで画面がおかしい(Linux)

イメージ
 絶賛運用テスト中のChromeOSですが… すでに入手してからかなりの時間使っているChromeOS、なかなか使い勝手が良くて遊んでします。 欠点は、Filesystemがやや遅目で、特にLinuxからChromeOSや、その逆を行った時にイラッとすることがありますが、それ以外はなかなか良い感じ。 最近は、開発にどの程度使えるのかと、Linux上に使える環境を構築し、AndroidアプリでSpotifyやAmazonPrimeでビデオを見たりと、結構楽しめています。 開発環境をMainマシンと同じことが出来るようにしてやろうと、少しずつ作業を進行中。 vscode(Editor) fcitx-mozc(日本語変換エンジン) Brave(ブラウザ) Slack(チャットツール) wireshark(ネットワークツール) wxMaxima(数式処理システム) Notable(MarkdownEditor+) Steam などのLinux用ソフトウェアを導入してみた。 もちろん、Apacheやphp,ruby,julia,dart,g++など主要?な言語は導入済み。 MySQL環境 今回は、MySQLを導入し、それ用にDBクライアントも入れてみた。 DBeaverを試すことに。 Mainマシンでは、これまでも使用してきたが、最近はDBeaverを主に使っている。 本家からダウンロードして、インストールするだけだ。 $ sudo apt install ./dbeaver-ce_21.3.5_amd64.deb これで、完了。 起動してみる… 画面がおかしい… 画面がチラツキ、アイコンが壊れ、マウスカーソルが当たったところが点滅したり、表示とクリック箇所がズレていたり…。 なんだ? 他のソフトでは、こんな事は起きたことがないのに…。 DBeaverを再起動してみる。 一旦、Linuxを再起動してみる。 一向に、なおる気配がない。 あちこち、検索してみるものの、同様な症状の報告はない。 仕方なく、ChromeOS自体を再起動…。 変わらない。 むむむ…。 仕方ないので、アンインストールして、再度入れ直してみるが、治らない。 ChromeOSのバージョンを確認しようとしたら、更新が降ってきたので、インストール。 → ChromOS再起動 → Linux起動 → DBeaver

chromebookにruby3.0

イメージ
 chromebookをサブ開発マシンに と思っているので、clang,python3,juliaにvscodeから利用できるように設定してきた。 さて、12月末にruby3.0が正式リリースされたので、テストしたいなぁと思っていた。 ところが、aptを使って入れるとruby2.5と随分古め…。 探してみても、chromebook用のサードパーティリポジトリなんてないし…。まあ、他の作業しながらビルドしてみるかと思って構築してみた。 基本的には rbenvを使用することに。 https://github.com/rbenv/rbenv が、rbenvの配布元なので、ここのReadme.mdを参考に進める。 まずは、そのままクローンする。 $   git clone https://github.com/rbenv/rbenv.git ~/.rbenv あとは、ドキュメントに従ってPATHを通す。 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc $ ~/.rbenv/bin/rbenv init 初期化しろというので、実行しておく。 他のサイトでは、.bashrcに書いている場合もあったので、念の為入れておく。 $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc この時点で、.bashrcを読み込み直しておく。 $ source ~/.bashrc ruby-buildというpluginが必要なので、入れる。 $ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build $ echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc 再度、.bashrcを読み直す。 ここで、利用可能なバージョンをチェックすると $ rbenv install --list 2.5.8 2.6.6 2.7.2 3.0.0 jruby-9.2.14.0

chromebookの設定

 前回、 chromebook(Lenovo Ideapad s330)を入手 して遊び始めたと報告したのですが、その後快適に使用するために行なった作業で、気をつけるべき点をまとめておこうと…。 Chromebook のパフォーマンス設定 遅めのマシンなので、快適になる方法を試してみたところ、ハマった。 chromebookを利用している人たちのブログなどを確認すると、以下の設定でパフォーマンスが向上するという記事を幾つか見たので、試すことに。 Chromebook のパフォーマンス設定を変更する 一応、本家Googleの出している文書なので、安心感はあるけれども…。 設定自体は簡単。 Chromeブラウザのアドレス欄に「 chrome://flags#scheduler-configuration 」と入力し、設定画面を開く。 「Scheduler Configuration」欄を「Hyper-Threadingを使用する 」という設定に 再起動を求められるので、「Restart」を選択 これで、Hyper-Threadingが有効になるらしい。 デフォルトでは、無効になっているとのこと。 で、再起動後、動作を確認するものの、特段早くなった感じはしない。 もちろん、多数のアプリを動作させたり、タブをたくさん開くと少しは変わっているのかもしれないが…。 それよりも、動作しなくなった機能が発生。 仮想Linuxが起動しない。 Terminalを開こうとするが、起動中のアイコンに変わるものの、起動せずそのまま…。 他のLinux系のアプリも一切起動しない。 仕方なく、先程のHyper-ThreadingをOFFに戻し再起動。 ところが、Terminalは起動しないまま…。 この辺りがBetaたる所以でしょうか。 仕方なく、仮想イメージを削除し、再インストールし設定し直すことに。 本当はバックアップを取って、復元で戻るかもしれないのだけれど、バックアップを取っていなかったというミス。 terminalは起動しないので chrome上で、Ctrl+Alt+Tでcroshを起動する。 vmc list を実行すると、terminaが存在しているのが分かる。でもサイズがおかしい… vmc stop termina を叩くが、何も変わらず(勝手に再起動するらしい) vmc des

WACOM ペンタブレット FAVO

イメージ
古いペンタブレットを見つけた 遠隔授業等で、手書きで説明するのにマウスでは綺麗に描けず…。 そういえば、昔買ったペンタブレットあったかなぁと思って探してみた。 少し前に、古い機材等一掃したので、捨てたかもなぁとも思いつつ、ガサゴソガサゴソ… すると、見つかった! WACOM の FAVO(ET-0405-U)だった。 調べてみると、2001年頃の製品ぽい。おや?もう20年近く前? ( ゚д゚)ハッ! 昔のブログを見ても、2009年の記事中で「昔はLinuxでタブレットを使用するのが面倒だったので、しばらく放置してあったけれど…。」などと書いているので、相当古い。 さて、タブレット上で使用する電磁マウス(たしかそんな呼び方してたと思う…)はどこにもないが、タブレットと、ペンだけは残してあった。 さて、こいつをRyzenのメインマシンに繋いでみる。 まるで旧知の仲のような認識具合! 念の為、KuritaやGIMPで動かしてみるが、何の問題もない! 筆圧も感知するし、消しゴム機能もOK。 マウス代わりにも使えそうだ。 さすがLinuxなのか、WACOMなのか…。 この手の古い機材は、Linuxの方が上手かもしれない! ドライバのインストールも設定も不要で、普通に使えちゃった。 これで、ZoomのWhiteboardでも、上手く使えそう…。

Ubuntu20.04へのアップグレード

イメージ
最新のUbuntuをテスト この時期、いつもどのバージョンを使用するか迷うんですね…。 もちろん、LTSを選択するので16.04, 18.04と選択してきました。 今回、20.04LTSですので早目にテストしておきたいわけです。 でも、メインマシンでの再構築や再設定、インストールし直しなどは少々面倒なのでやりたくないでし。 そこで、3月までメインだった現サブマシンでテストすることに。 一応、スペックは以下の通り CPU :core-i5 2400S  @2.5GHz×4 メモリ:8GB グラフィック:Intel HD Graphics2000 ストレージ:SSD500GB+HDD1TB という、かなり古目の石に、周辺だけ強化したマシンです。 これまで、18.04LTSを入れて使っていて、特の問題とか設定で困ったとか起きたことのない安定稼働マシンです。  ガワは、NECのMateデスクトップを利用しています。 とにかくアップグレード # apt dist-upgrade したら、「新しいリリースはありません」と返されたので、強制的にUPする。 # do-release-upgrade -d はい、これでOKでした。 あとは、必要なパッケージやら、何やらダウンロードが完了したらインストール実行してくれます。 今回は、テストも兼ねているので、設定ファイルはすべて書き換えるように返答します。 入っているアプリケーションの数にもよるでしょうが、結構な数、聞かれました。 で、再起動。 ここまで、およそ30分は掛からないくらい。 結構、さくっと起動しました。 個人環境は、そのまま引き継いでいるので、何となく雰囲気は似ている。 ただ、Launcerのアイコンが分かり難くなった感じ。 慣れの問題だとは思うけど…。 一応、以下の状況。 OKです。 すべてのデバイスは正しく認識している感じ。 OSのバージョン上げたので、マシン名と一致しなくなった(笑)けど、まぁこのままで…。 あとは、デーモン関係の設定を確認しないと、正常に動作するか判断できないけれど、少々

Barrierでマシン2台の運用

イメージ
旧メインマシン併用で狭い… Ryzenマシンを置いたら、作業机が足りない(狭い) 無駄にキーボードが大きいし、左のマシンのマウスが邪魔だし…。 ということで、KVMスイッチャを使おうかと思ったものの、また電源を用意したり設置場所を考えると面倒なので、ソフトウェアで対応することにした。 さて、Linux用のマウス共有ソフトを探すと「 barrier 」が良さそう。 昔、テストしたことの有る「Synergy」からフォークしたOSS。 ちなみに、Linuxだけでなく、MacOSやWindowsでも併用できるような感じ。 早速、両方のマシンに入れてテストする。 # add-apt-repository ppa:alexlarsson/flatpak # apt install flatpak gnome-software-plugin-flatpak $ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo この3つの実行でインストールは完了。 まずは新しいマシンをサーバに設定。 ただ、SSLをDisableにしないと接続がうまく行かなかった。 でもって、クライアントの配置を決定する。 要はマウスがWindowのどの部分で接続するか…という設定。 旧マシン(u1804)を左側に置いたので、そのように設定する。 あとは、クライアント側(旧マシン)側で起動して、Clientに設定。 サーバのIPを設定して完了。 おかげで、机の上が広く使えるようになった。 左のマシンのマウスとキーボードは、ディスプレイの後ろに立てて収納(万一、直接触る場合も有るだろうし…) マウスカーソルを左端まで持っていくと、すぐ左側のマシンがアクティブになる。 キーボードの入力も、そちらのアクティブウィンドウに対応する。 1台のマシンでマルチディスプレイしているくらいの使い勝手。 実際には2台のマシンを行き来しているんだけど…。 超便利です。 今回はスプリングアームで、ディスプレイを持ち上げて

sshで自分のマシンに拒否られた

ssh localhost テストを行っていて、自分の使っているマシンに接続を行ったら、見慣れぬWarningが表示されて拒否られた。 $ ssh localhost いやいや、おかしいでしょう。 内容は以下のように出力された。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:なんたらかんたら. Please contact your system administrator. Add correct host key in /home/yoshimura/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/yoshimura/.ssh/known_hosts:22   remove with:   ssh-keygen -f "/home/yoshimura/.ssh/known_hosts" -R "localhost" ECDSA host key for localhost has changed and you have requested strict checking. Host key verification failed. うーむ、そういえば、自分のマシンに接続したのは記憶では、こ

ソースコードのチェック

プログラマに求められることは何か… 毎年、非常勤として言語や環境設定、アルゴリズムなどを少し教えている。 ここ数年気になっていることがある。  自分のコードを書かない、書けない人の割合が増えているような気がしている。 確かに、Google先生に聞けば、いくらでもサンプルコードは入手できるし、解説も読める。以前に比べ格段に、ソースコードや開発に関わる情報を入手しやすくなっているとは思う。  そして、自分が作成しようとするプログラムで行き詰まって、検索したサンプルコードを参考に動くようにする。  これは、問題ないと思っている。  人のコードを読む→理解する→自分のプログラムで使えるように修正する(または利用する)→動かす→デバッグする…。  プログラマなら多分、普通の行動でしょう。  ところが、最近、Webに紹介されているコードをそのまま利用して、動く・動かないだけを確認する学生を目にするようになった。 課題を課す→同じ内容の問題と解答を探す→そのまま持ってきて提出する 他人のプログラムを入手→改行やコメントを付け加える→提出する これは、自分の考え・思考をコードに落としたことになるのか? 練習にもなっていないし、何も理解度が上がっていない…。 実力・経験値は一切向上していない…。 対策することに 他人のプログラムを、提出されて「はいOK」という訳にはいかない。 将来ソフトウェア関係の仕事をするのであれば、なおさらそんなことは許されない。  これまでは、各ファイルのmd5sumを取って、同一かどうか(不正しているかどうか)の判定を最初に行っていた。  ところが、最近は、コメントを書き加えるとか、無駄に改行やスペースを入れるという、Cheatまがいの手法を使うケースが目立ってきた。  仕方なく、コメントを無視し、スペースや改行を無視した上で、同一かどうかを判定することにした。 md5.sh 手軽に処理するためにシェルスクリプトで作成してみた。 md5.shで保存して、実行権限を付加してパスの通ったところに置けばOK。 findと併用するのを前提にしている。 #!/bin/bash # 元ファイルから改行・スペースを除去したハッシュ値を出力する # 結果は カレントディレクトリの$re

クラウドストレージはどこがいいのか?

イメージ
すでに大量のクラウドを利用しているが… どれも一長一短ではあるが、速度が早くて安くて安全なものが望まれる訳で…。 とはいいつつ、一体自分がどれだけ利用しているのか確認してみた。 Dropbox(14GB) Evernote(転送量の縛りのみ) Mega(50GB) GoogleDrive(19GB) OneDrive(1TB) OwnCloud(100GB) iCloud(5GB) ASUS(5GB) box(50GB) ざっと上げただけで、こんなに使っていた。 といっても、iCloudはiPhoneを使えば即溢れる、Dropboxは無料枠を広げたものの、いつもアラートが出るくらい溜まっている。 最近は、Office365を使うようになってOneDriveの割り当てが増えたので重宝している。 でも、いつまでもMicrosoft Officeを使うかどうか分からないので思案している。 Googleが1TB→2TBに容量をアップしたので、比較的安いよな〜と思っていたのだが… やすいと言っても、年額13000円。 そこへASUSからDMが舞い込む 以前、ASUSのZenfoneを使用した時に、アカウントを作成し利用しただけだったのだが、今回1TBに割り当て増やしたよ!とメールが来た。 ただし、30日間だけねって…。 よく読んでみると、ものすごく安い! ファイル履歴もついて、1480円/年とな! これは、ちょっと価格破壊的な料金設定な気がするレベル。 少し考えても良いかなって心が揺れました。 WebStorageなので、DropboxやOneDriveみたいに、ローカルマシン用のツールは出ていないはず。 だけど、もし出ているかLinux上からマウントして利用できるなら、選択肢に入れても良いかなと…。 と思って、ASUSの自分のアカウントを開いてみた。 何と!ちゃんとクライアントツールが出ていた。 しかもLinux版まで。 さすがだ! ということで、本格的に検討してみる。

PHPでsnmpを叩く

snmpを実際に使ってみる 前回、「 WindowsでSNMPを試す 」ということで、Linuxマシン上のsnmpwalkを使用して情報を取得できることは確認した。 今回は、PHPで無理やり情報を取得してみる。 本来はPHP上のsnmp用関数を利用するのが良いのだろうが、前回snmpwalkが動作するのを確認しているので、子プロセスで動かして情報を拾ってみる。 今後、Web上に出力するとかファイルん書き込むとか、Nativeの関数もあるといううことでPHPを選択してみた。 さっくりとテストコードを書いてみる。 ターゲットは、BuffaloのNAS、「TeraStation」にしてみる。 こいつは、設定でSNMPをONにすることで、ちゃんと返してくれるらしい。 <?php $cmd = "/usr/bin/snmpwalk"; $version = "-v2c"; $comunity = "TeraStation"; $ips = ["192.168.11.86"]; $oids = [     "1.3.6.1.4.1.5227.27.1.3.1.3.1"=>"GB",     "1.3.6.1.4.1.5227.27.1.3.1.4.1"=>"%" ]; foreach($ips as $ip){     foreach($oids as $oid=>$dummy){         $temp = exec("{$cmd} {$version} -c {$comunity} {$ip} {$oid}");         $values[$oid] = substr($temp,strrpos($temp," ")+1);     } } echo date("Y-m-d H:i:s "); foreach($values as $key=>$value){     echo &

大量のパスワード生成

イメージ
良くあるんだけど… 客先のサーバの管理をしていると、アカウントの作成依頼が時々くる。 どうやって管理するかと言うとExcelやGoogle Spreadsheetに ユーザ名・パスワード、氏名、作成日などを記録しておく。 ユーザ名は、氏名から作成するので問題ないがパスワードはあらかじめ余分に生成して記録しておく。 使っていないパスワードが、あと1〜2個になったら、さらに生成して追記している。 ところが、パスワードをまとめて作れば作るほど、間隔が伸びるので作り方を忘れてしまう。 以前は、PHPで書いて、WEBアクセスで指定個数分出力させる方法も取っていたが、ブラウザを起動するのが面倒だ。 たまには、Commandの使い方の解説も含めて、記録しておこうと思う。 パスワードの作成 $ pwgen これで、160個のパスワードを生成してくれる。(図) ただしオプション無しだと本当にランダムに生成するので、たまたま強度の弱いパスワードが生成される。 そこで、通常は次のようなオプションを付加する。 $ pwgen -Ccns とか $ pwgen -CcnsB とか・・・ 使い方は以下の通り Usage: pwgen [ OPTIONS ] [ pw_length ] [ num_pw ] Options supported by pwgen:   -c or --capitalize Include at least one capital letter in the password   -A or --no-capitalize Don't include capital letters in the password   -n or --numerals Include at least one number in the password   -0 or --no-numerals Don't include numbers in the password   -y or --symbols Include at least one special symbol in the pa

これは使える!テキストツール csvq

GO製 csvq いつも使えそうなツールをチェックしているのだけれど、久々に使えるものを入手した。 csvファイルをDBのように扱い、sqlで操作可能にする。 https://github.com/mithrandie/csvq インストールはBinaryをダウンロードしてPATHの通ったところに置いて完了。 ちなみに、他の人はどうしているのか分からないけれど、どこに置くのかというのはいつも悩ましい所。 /usr/bin /usr/local/bin あたりが、多いんでしょうか…。 まあ、マルチユーザの場合、パッケージなどで入れたものは、/usr/bin以下に入るだろうし、buildするタイプなどで作法の良いものなら/usr/local/binなどに入れるのが普通だろうなぁ。  自分の場合は、個人で使用する場合や自作のもので、一時的に使うモノは、~/bin というフォルダを作成していて、ここにポイッと入れて動作テストなどしている。 もちろん、PATHを通しておく必要が有る…。 さて、解凍してcsvqをbin以下に入れれば即実行できる。 こいつ強力すぎる! 実際に試してみると、こいつは便利だ。 試しに次のようなデータを作成してテストしてみた。(user.csvとscore.csv) データを一覧したければ、 $ csvq > select * from user; +----+--------+-----+-------------+ | id | name | age | tel | +----+--------+-----+-------------+ | 1 | user1 | 20 | 01011112222 | | 2 | user2 | 21 | 01011113333 | | 3 | user3 | 22 | 01011114444 | | 4 | user4 | 23 | 01011115555 | | 5 | user5 | 24 | 01011116666 | | 6 | user6 | 25 | 01011117777 | | 7 | user7 | 26 | 010

Thinkpad x240 を入手

イメージ
ヤフオクで物色 これまでx200を利用してきたけれど、イマイチ反応が悪いことが気になりだした。 vivaldiでタブを複数開いて、Spreadsheetとエディタと端末で作業すると…。 固まることはないけれど、息づくというか…。 でもって、kotlinのコンパイルしてjvmの上で動作確認とかすると、イラッとするレベル。 core2duoの限界かなぁ…と。 しかも、液晶も最大輝度でもけっこう暗くて、そろそろ交換しようかと悩んで、amazonなどでパーツを探してみた。 すると、HD→FHD交換が可能という情報を。 でも、x200は対応していなくて、「X240 X240s X250 X260 対応」と書かれている。 x240のスペックを調べると、なかなか良いではないか。 ということで、念入りに価格を調べ、本体を入手することに。(笑) 1週間ほどあれやこれや探して、結局13,751円でヤフオクで落札。送料込みで14,624 円。 予定では14000円以下(送料込み15000円)で落札できればと思っていたので、少し安い感じ。 届いたブツの状態はとても綺麗で、良品でした。 ちなみにスペックは、corei5第4世代、HDD500GB、メモリ4GBです。 追加パーツを手配 本体にはメモリが4GBでスロット1しか無いので、交換となる。 この点、x200は2スロットだったので少し残念。 DDR3L 1600 MHz PC3L 12800 永久保証 で 5,980円なり。 そして念願の、FHD液晶を手配。 YHtech適用修理交換用適用Lenovo ThinkPad X240 X240s 12.5 フルHD (1920x1080) IPS液晶パネル 11,500円 なり。 SSDはx200のを流用することに。 結局 本体 14,624- メモリ  5,980- 液晶 11,500- 合計 32,104 円となった。 この内Amazonのポイントで2480支払ったので、最終的には29,624円。 まあ、当初10〜15万程度のモバイルマシンを買おうかと思っていたので、素敵! 本体よりパーツのほうが高いという…。お約束のような…。 実際の交換作業 本体裏蓋を開ければ、メモリとHDDは簡単に交

proxy経由のssh

proxy設置場所での作業 出先の環境では、proxyを通さないと外に出られない場合がしばしば存在する。 作業のノートPCを持って行き、いつもはテザリングで対応するのだけれど、転送ファイルのサイズがが大きかったり、電波状況の悪い環境だと、Wi-Fiを借りたり、有線での接続も多々有る。 で、いつも忘れてしまうので、まとめておく。 .ssh/configに書いてもよいのだけれど、このファイルは自宅やノート、他のマシンと同一にしておきたいので、変更を加えないようにする。 そこで、持ち歩くノートPCにのみ、proxyを通す設定をする。 .bashrc内にaliasとして設定しておく。 もちろん、テザリングでの作業も多いので、通常のsshとは別コマンドに設定する。 alias pssh="ssh -o ProxyCommand='nc -X connect -x 172.xx.yy.zz:3128 %h %p'" これで、端末から $ pssh hoge とすれば、プロキシー経由での接続ができるようになった。 もちろん、 $ ssh hoge なら、通常のssh接続だ。 自分で意識的にコマンド名を変えているので、間違えにくい・・・。 環境が変わったら、.bashrcを書き換えることで対応することに。 ああ、これで幸せにRemote作業ができるゎ。

ユーザーみて処理

bash使っていて 主にメモなんだけど…。 コンソール叩いていて、sshでリモート接続する場合が多い。 でもって、パスフレーズを60桁程度入力するのは面倒なので、keychainを利用している。 こいつを使えば、1度パスフレーズを入力すれば、バックグラウンドでssh-agent動かしてくれて、再入力の手間が省ける。 そこで、.bashrcの最後に #ssh keychain /usr/bin/keychain ~/.ssh/id_rsa source $HOME /.keychain/ $HOSTNAME -sh と書いていた。 ところが、管理者権限で作業しようとすると、 再度、パスフレーズを聞いて来る。 当然、rootではsshはしないので、ENTERでキャンセルしているのだけれど、これに気づかずコマンド入力し始めて、パスフレーズの入力を行っていることが多々有って…。 ということで、rootのときは、keychainを回避することにした。 if [ " ${USER} " != "root" ]; then #ssh keychain /usr/bin/keychain ~/.ssh/id_rsa source $HOME /.keychain/ $HOSTNAME -sh fi これで、OK。 作業中に、sudo -sしてrootになっても、パスフレーズの確認はされない。 シェルスクリプトをちょこっと書くだけで、精神衛生上非常に良いのでお勧め…。 逆に、rootのときだけ実行したい処理なんかも、同様に書いておけばお手軽ですな。 sudo コマンド で実行すれば良いのだろうけど、毎回sudo書くの面倒だし…。

shutterの編集ができない

イメージ
Ubuntu18.04をメインにして 前回、HDD→SSDに変更した折に、これまで使っていた16.04から18.04に上げたのは良いけれど、随分動かなくなったり、変更になったりするコマンドなどに、少々戸惑っている。 今回は、スクリーンショットを撮って、なおかつ、即編集可能なツール「 shutter 」で躓いた。 http://shutter-project.org/ 永く使用しているが、Linuxではこいつが便利。 ところが、18.04では、キャプチャはできるものの、編集がグレイアウトされて利用できない…。 18.04が出て4ヶ月も経てば、何らかの情報があるだろうと探してみる。 有りました。 http://ubuntuhandbook.org/index.php/2018/04/fix-edit-option-disabled-shutter-ubuntu-18-04/ ついでに、日本語でも探してみたら、こちらも見つかりました。 https://symfoware.blog.fc2.com/blog-entry-2149.html ということで、不足しているライブラリ等をインストール。 再起動を忘れずに… 日本語のページにあるように、shutterがバックグラウンドで動いているので、こいつをkillしてから起動し直さないと、一向に「編集」が有効になりません。 これは、「To apply changes, kill Shutter process or restart your computer!」と書かれているだけで、日本語のページの方が少し親切ですね(笑) ちゃんと、「編集」が使えるようになっています。 ついでに、矢印書き込んでみたり、一部モザイクかけたりしてみました。 これで、作業が捗るわ…。

マシン増強

LinuxマシンをHDD換装 メインで使用しているLinuxマシンは、客先より引き上げて廃棄予定だったものを、利用し再構築して使っていた。 筐体:富士通のデスクトップ CPU:Intel® Core™ i5-2400S CPU @ 2.50GHz × 4  メモリ:8GB(2GB×4) HDD:500GB(250GB×2) というチープなマシン…。 第2世代のcore-i5だけれども、起動してしまえばそれ程遅くはなかった。 ただ、VirtualBox上でWindows7を起動するのに、相当時間がかかる。 起動後もまともに動き出すのは、イラッとする程の待ち時間…。 どこかのタイミングでマシンの買い替えか、パーツの変更を考えていた。 プライムデーでSSD購入 たまたま探してみると、500GBのSSDが1万円強で買えるのを見つけた。 速攻でポチリ。 まずは取り付け、OSのインストールを行う。 データは、後からUSB外付けでHDDをつなぐことで、移行の予定。 ついでに、Ubuntu16.04→18.04にすることにしたが、もちろん新規インストールすることに。 OS自体は、USBからインストールしたので、あっという間に完了。 18.04になってUIが少し変わったものの、特に問題はない。 まずは、/homeディレクトリ以下のメールの設定、sshの設定などをコピー。 ブラウザはVivaldiを常用しているので、インストール後、各種設定をコピー。 Visual studio codeとmarkdownエディタにtyporaを入れる。 細々したツールは後々入れることにするが、ClipItとDropboxは早目に入れておく。 LibreOfficeだけでは少々使い勝手が悪いので、WPS Office(Linux版)を入れて日本語化。 これで、最低限の設定は完了。 電源ON→起動→ログイン画面まで約1分弱となった。 仮想マシンの移行 SSDでの動作確認を行ったので、旧HDDから起動して、VirtualBoxのゲストOSをエクスポートする。 ubuntuは、また入れれば良いので、面倒なWindows