ブログ内検索

プログラミング教材開発
大阪府高槻市原地区で肥料教室を開いています
検索キーワード:「expect」
 

ARM版ChromebookにDropboxをインストールする

/** Geminiが自動生成した概要 **/
ARM版ChromebookでLinuxアプリのDropboxを使うには、.debパッケージが使えないためDbxfsを利用する。pip3でDbxfsをインストール後、Dropboxフォルダを作成し、dbxfsコマンドを実行。表示されるURLにアクセスし、Dropboxにログインして認証コードを取得、端末に入力する。パスフレーズを設定すれば、Linuxファイル配下でDropboxのファイルが操作可能になる。Android版DropboxはChromebookのFilesのLinux共有に対応していないため、この方法が必要。

 

php-webdriverでelement click interceptedのエラーに対して

/** Geminiが自動生成した概要 **/
SeleniumとJenkins、php-webdriver、ヘッドレスChromiumでテスト自動化中に、メモウィジェットが原因でelement click interceptedエラーが発生。ヘッドレスモードで画面サイズが不足し、対象ボタンが隠れていたのが原因。ウィンドウサイズを`1024x2048`に設定することで一時的に解決したが、ページサイズに依存するこの方法は最適ではない。スクロールによる解決策も検討されたが、最終的にはCSSを修正し、メモウィジェットが他のボタンと重ならないように調整することで根本解決した。

 

Jenkins + ヘッドレスChromeでテスト自動化の省力化

/** Geminiが自動生成した概要 **/
JenkinsによるSOY CMS/Shopのテスト自動化で、ビルド時間が5時間超となり、Chromeのクラッシュが発生していた。メモリ使用量削減のため、ヘッドレスChromeを導入。php-webdriverのコードにChromeOptionsを追加することで、ヘッドレスChromeでのテスト実行が可能になった。仮想デスクトップ(Xvfb)も不要となり、メモリ使用量が削減され、格安VPSでの高負荷テスト継続に期待が持てる。

 

Apache上で利用しているLet's Encryptの失効

/** Geminiが自動生成した概要 **/
旧サーバーでLet's Encrypt証明書の失効、新サーバーで新規発行の手順を解説。 旧サーバーでは、`certbot`を使わず、`/opt/letsencrypt/letsencrypt-auto revoke`コマンドで証明書を失効、`delete`コマンドで関連ファイルを削除。ドメイン名(saitodev.co)を指定して実行。 新サーバーでの証明書発行手順は別記事を参照。

 

php-webdriverでSOY CMSにログインしてみる

/** Geminiが自動生成した概要 **/
php-webdriverを用いて、Selenium経由でSOY CMSにログインする手順を解説。ログイン画面で、ログインIDとパスワードの入力フィールドにそれぞれ「soycms」を入力後、ログインボタンをクリックしてログインするコードを紹介。`findElement`メソッドと`sendKeys`メソッドでフォームに値を入力し、`submit`メソッドでログインボタンをクリックすることでログイン処理を実現。ボタンもフォームも`findElement`で要素を取得し操作できることを示している。結果、SOY CMSの管理画面へログインできたことを確認。

 

php-webdriverで指定のフォームに値を入力してみる

/** Geminiが自動生成した概要 **/
Seleniumとphp-webdriverを使い、SOY CMSのログイン画面を自動操作するテストコードを実行した。ChromeドライバでChromiumを起動し、ログイン画面を表示後、ログインIDフォームに「soycms」と入力するコードを追加。実行結果、コンソールに「soycms」と表示され、Chromium上でもログインIDフォームに「soycms」が入力されていることを確認。基本的な動作確認が完了し、本格的なテストコード作成に移行する。

 

Dropboxにバックアップする時はパスワード付きzipにしておく

/** Geminiが自動生成した概要 **/
Dropboxへのバックアップ時に、個人情報を含むデータベースをzip圧縮する際のセキュリティ強化策として、パスワード付きzipファイルの作成方法を紹介している。 zipコマンドの-eオプションで暗号化が可能だが、対話式でパスワード入力を求められるため、crontabでの自動化にはexpectコマンドを使用する必要がある。サンプルスクリプトでは、expectでパスワード入力を自動化し、指定ディレクトリをパスワード付きzipファイルとしてDropboxにバックアップする方法を示している。 スクリプトの実行例として、Dropboxへのアップロードとダウンロード後の解凍時にパスワードが要求されることを確認し、セキュリティが向上したことを示している。さらに、パスワードの強度を高める方法や都度生成する仕組みの必要性にも言及している。

 

MySQLのバックアップスクリプトを作成してみた

/** Geminiが自動生成した概要 **/
CPIの仮想専用サーバで開発中に、無料の50GBバックアップサーバを利用してMySQLのデータベースをバックアップするシェルスクリプトを作成した。スクリプトは`mysqldump`で全データベースをダンプし、gzipで圧縮、`scp`と`expect`を用いてパスワード認証でバックアップサーバに転送する。`expect`はscpのパスワード入力を自動化し、cronでの実行を可能にする。古いバックアップファイルの削除処理は未実装。`chmod +x`で実行権限を与え、cronで毎日実行するように設定。最後にバックアップサーバにbackupディレクトリを作成し、動作確認を行った。

おすすめの検索キーワード
おすすめの記事

Powered by SOY CMS   ↑トップへ