最近のコメント

    ラズパイが起動しない(SDカードが壊れた)

    娘ちゃんの自由研究でつくったルールベースの対話ロボ、久しぶりに初代ラズパイを起動しようとしたら、Kernelパニックで起動しない状態となった。娘ちゃん😭

    Rootパーティションが認識出来ない旨のメッセージが表示されていて、おそらくSDカードが壊れたようだが何とか復旧できないか試みたところ、意外とあっさり動作したのでメモ。

    以下、手順(と言っても大したことないが)

    SDをUSBカードリーダーにセット 生きの良いラズパイに接続 fdiks -l で/dev/sdb2として認識されることを確認(sdb1がBoot、sdb2がルートパーティション) fsck -y /dev/sdb2 で復旧 mount -t ext4 /dev/sdb2 /mnt でマウント 重要なデータ(娘ちゃんの作ったプログラム)を救出 umount /mnt 初代ラズパイに戻して、起動 ⇒ 成功!! […]

    httpd.confのオリジナルと比較

    Apacheの設定がOSインストール時の初期設定との差分を見たいとき、下記のようにRPMファイルをダウンロードして、解凍して、比較すると良い。

    cd /tmp yum reinstall –downloadonly –downloaddir=./ httpd

    一瞬、yum のインストールが行われた様に見えるので、ドキッとするが、最後にこんな表示があった。

    exiting because “Download Only” specified

    ※DeepLで翻訳すると・・・「ダウンロードのみ」が指定されているため、終了する。

    で、ダウンロードされたRPMファイルを解凍する

    mkdir httpd_rpm_work cd httpd_rpm_work rpm2cpio ../httpd-2.4.6-97.el7.centos.5.aarch64.rpm | cpio -idv

    で、比較する

    diff /etc/httpd/conf/httpd.conf ./etc/httpd/conf/httpd.conf

    以上

    […]

    ラズパイにおけるRAID(mdadm)のはなし

    ラズパイWebサーバー(CentOS7)が古くなってきたので、にRockyLinux8をインストールしてWebサーバー運用を検討した。

    以前、CentOS7にて、mdadmのRAID1にて運用していたが不運が重なり2台とも故障した結果、データロストを経験した為、RockyLinuxへの移管とともに、RAIDも1→6にすることを思いついた。RAID6であれば2台同時故障にも耐え得るので安心感が大きいのだが、構築してみて大きなデメリットがあることに気がついた。mdadmは週1回程度のRAIDのベリファイが必要なのだが、その負荷がRAID1と6では比べ物にならないくらい高く、また時間がかかることがわかった。ラズパイという非力なCPU上では、RAIDのベリファイが発生するとコンソールの受付もままならないほど、遅くなる。これではベリファイや障害時リカバリーの間は、Webサービスの提供が困難になってしまう。

    それでは、ベリファイやリカバリーの負荷が少なく、RAID1よりも安全なものは何かというと、RAID10ということになる。24時間365日サービス提供の必要がある為、今回はRAID10を採用することとした。

    RAIDについてはわかっているようでわかっていないことがまだまだあるのだと今回勉強になった。

    参考ページ

    https://www.adte.jp/rec/hdd/post-748 […]

    ZipコマンドをGitBashで使えるようにする方法

    PowerShellにて便利なWindows用のパッケージツール「Scoop」をインストールする。PS> Invoke-Expression (New-Object System.Net.WebClient).DownloadString(‘https://get.scoop.sh’)

    エラーが発生した場合は、下記にて実行ポリシーを許可する。PS> Set-ExecutionPolicy RemoteSigned -scope CurrentUser

    再度、試みるPS> Invoke-Expression (New-Object System.Net.WebClient).DownloadString(‘https://get.scoop.sh’)

    Zipコマンドのインストール。PS> scoop install zip

    GitBash(コマンドプロンプト)にてZipコマンドが使えるようになる!cmd> zip -r xxxxx.zip hogehoge -x ‘*.mp4’

    ちなみに、Zipコマンド以外にも様々なパッケージ、例えばFireFoxなどもインストール出来るようです。これは便利!

    scoop search firefox などでインストールしたいパッケージ検索可能とのこと。パッケージが見つからない場合は、scoop bucket add extras にてextrasバケットを追加すると、インストールできるパッケージが一気に増えるとのこと

    […]

    FreeNASで古いHDDをWipeする

    FreeNASで古いHDDを再利用する際、以前にRAID等で利用してたHDDを使用した場合、クイックWipeしてもReplace が成功しないことがある。

    この場合、HDDを接続したら、最初に下記のddコマンドで、パーティション情報を保持しているセクタをサクッと初期化することで、WipeやReplaceに失敗せず利用可能となる。

    sysctl kern.geom.debugflags=0x10 dd if=/dev/zero of=/dev/ada1 bs=512 count=1 ada1 の部分を、ターゲットのHDDに変更する。間違えると大変なのでタイプミスに要注意。

    Cybozu2ical(Cybozu Office10からスケジュール抽出)

    Cybozu Office からスケジュールデータをスクレイピングして、ical形式でレスポンスするスクリプトです。

    元は名古屋の社長様が作られたもので、その後、望遠鏡ドットコム様が修正したものを勝手にメンテしたものとなります。

    <?php /* 機能説明: CybozuOffice10に対してスケジュールをスクレイピングし、ical形式に変換して返却するスクリプト 利用方法: https://hoge/cybouz2ical.php?user=username&pass=password usernameはCybozuOfficeの下記ページの「ログイン名」欄にて確認できます。 https://hoge/fuga/ag.cgi?page=PersonalUser 改版履歴: 2009/05/13 名古屋ではたらく社長ブログだもんで サイボウズofffice8と同期するツール暫定版 http://ameblo.jp/sitescope/entry-10260113074.html 2013/08/26 上記にて公開していただいているスクリプトをサイボウズ9用に勝手改変版 サイボウズ Office Version 9.3.1 20130703181739にて確認 望遠鏡ドットコム サイボウズ9・サイボウズ10のスケジュールをiCal形式でGoogleカレンダーに同期(一方通行) サイボウズ9・サイボウズ10のスケジュールをiCal形式でGoogleカレンダーに同期(一方通行) 2020/09/18 上記で公開しているソースについて以下を改修しました ・ icalのUIDの重複を避ける(Googleカレンダーで同日の複数予定が1日1件しか取り込めないのを修正) ・ 基本認証設置しているCybozuOfficeに対応 ・ URLパラメタにUser/Passを含めるように修正(SSLを使用しないと平文で送られるので要注意) ・ その他微修正 */ $username = $_GET['user']; $password = $_GET['pass']; if(empty($username) || empty($password)){ die("parameter error!"); } //——————————————————————————————————————- // 設定 […]

    CoreOS で docker-compose を自動起動

    CoreOSはもうサポート切れとなり、Fedora系に引き継がれているが我が家ではLAN内で使用している為、まだまだ現役である。

    今回、サーバーをRebootしてもすぐに起動してくるよう、設定した際のメモを残す。

    自動起動ファイル作成

    $ sudo vi /etc/systemd/system/docker1.service [Unit] Description=My Service After=docker.service Requires=docker.service [Service] WorkingDirectory=/opt/app/laradock ExecStart=/opt/bin/docker-compose up -d [Install] WantedBy=multi-user.target $ sudo systemctl enable docker1 $ ln -s '/etc/systemd/system/docker1.service' '/etc/systemd/system/multi-user.target.wants/docker1.service'

    一覧確認

    $ ls -l /etc/systemd/system/multi-user.target.wants/docker*

    最後に、Rebootして docker-compose ps で全てUPしていることを確認した。

    […]

    WindowsのVisualStudioCode で PHP CS Fixer 拡張を使用する

    WindowsのVisualStudioCode で PHP CS Fixer 拡張を使用する場合、 php.exeが必要みたいです。

    このようなエラーに悩まされました。PHP CS Fixer: executablePath not found, please check your settings. It will set to built-in php-cs-fixer.phar. Try again!

    さて、下記が対処方法となります。 ・ PHP CS Fixer 拡張をVisualStudioCode 上でインストール ・Windows版のPHPを下記よりダウンロードし https://windows.php.net/download/ 適当なパス 、例えば C:\php\ にZipの中身を設置します。 ・さらに settings.json にパスを設定します。 C:\Users\[ユーザ名]\AppData\Roaming\Code\User\settings.json に “php.validate.executablePath”: “C:\\php\\php.exe”, を追加します。 これで動作するようになります。

    […]

    Pritunl VPN環境の構築手順

    コロナの影響でリモート接続が必要となり構築した際のメモ。既存のセグメントに透過的にアクセス可能とするのではなく、新しい仮想のVPNセグメントを生成して、そのセグメントに必要なクライアントを参加させる形となる。 Pritunlサーバ構築 AWS(準備) EC2のOS: Amazon Linux 2 EC2インスタンスタイプ: t3.micro ストレージ: 8GB ElasticIP付与: 必須(以降、111.111.111.111) ドメイン設定: 任意 インバウンドポート設定 TCP SSH、HTTP、HTTPS 保守作業する場所(自宅/会社)のIPのみ許可 UDP 18055 VPNクライアント用(*後ほどPritunlのWeb設定画面で表示される番号) AWS(EC2サーバ構築) SSHにて、ec2-userでログイン ここを参考にPritunlをインストール(以下)

    sudo tee /etc/yum.repos.d/mongodb-org-4.2.repo << EOF[mongodb-org-4.2]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/4.2/x86_64/gpgcheck=1enabled=1gpgkey=https://www.mongodb.org/static/pgp/server-4.2.ascEOF

    sudo tee /etc/yum.repos.d/pritunl.repo << EOF[pritunl]name=Pritunl Repositorybaseurl=https://repo.pritunl.com/stable/yum/amazonlinux/2/gpgcheck=1enabled=1EOF

    sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpmgpg –keyserver hkp://keyserver.ubuntu.com –recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292Agpg –armor –export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm –import key.tmp; rm […]

    ヒアドキュメント

    「ヒアドキュメント」という言葉がいつも出てこなくなるので、メモ。 大体、いつもやりたくなるのは、下記のようにシェルで変数にぶち込みたくなるパタンが多い。 HOGE=$(cat << EOS hoge fuga EOS ) もしくは HOGE=`cat << EOS hoge fuga EOS `