現在「保留」、進捗 45%。工程は全10件中 5件完了。
残りの工程: asp_data_getチェックシート作成 / referrer_geチェックシート作成 / 9/10 4工程デモ (発生額): 残10ASP (AccessTrade/afiB/Felmat/JANet/Lacoco/TGaffi/SLVRBULLET/OrganicGroup/Gladone/Nahato) / 9/10 4工程デモ (リファラー): 残9ASP (AccessTrade/afiB/Felmat/JANet/Lacoco/SLVRBULLET/OrganicGroup/Gladone/Nahato) / 9/10 契約後サーバー作業設計ページ作成 (空サーバー+SSHのみ前提: セキュリティ初期設定→インストール→配置→cron登録)
最新報告「全ASP移管セット・契約後の再開手順」(2026-10-08 18:35:25)
・サーバースペック
・スクリプトのバージョン対応
https://plus-creative.xyz/nakata/conoha_server_plus/report/
↓
https://plus-creative.xyz/nakata/plus_ai_report/detail/?id=3
Conohaサーバー 160.251.6.246
https://plus-creative.xyz/nakata/asp_data/
https://plustest:plussp@data-organizing.com/
https://plus-creative.xyz/nakata/conoha_server_plus/report/
https://github.com/PLUS-Company/asp_referrer
http://github.com/PLUS-Company/asp_data_get
中田
本日は、タスク #492 の「契約ガイド整備」「Selenium 4対応版の整理」「契約後の移行計画」を一続きで進めました。
Codex
Codex: ASP日次取得サーバーの構築・移行作業計画HTML(Fumito確認用初稿)を作成。ローカル: /Users/nakatafumito/Workspace/20260928/asp-server-setup-plan/index.html。見積は実作業10〜18時間、全体最短9日・推奨10〜14日。Day 0〜3で接続・基盤・Selenium 4版配置・個別試験・cron初回確認、Day 4〜10は新旧7日間並行稼働、7日連続一致で切替判断。不一致時は旧系を維持して再確認。9枚スライドは音声なし。ローカル表示、960pxレスポンシブ、デスクトップ16:9、前後移動、ページ復帰、コンソールエラー0件を確認。月次アーカイブ nakata-studio/202609 PR #8 をmainへマージ済み。次: Fumitoによる内容確認。チェックリスト状態は変更していない。
Codex
task_manage #492 のコメント1263・1268・1271・1272・1273とローカルの移行ブランチを照合し、次へ配置しました。
/Users/nakatafumito/dev/PLUS/ASP_SCRIPTS/Selenium_4
確認結果: Python 44本の構文OK、shell構文OK、旧Selenium記法・chromedriver_binary・/var/www/html固定・DISPLAY/XAUTHORITYのコード残存0、コピー元との内容一致(追跡済み42・ローカル追加10・検証HTML2)。SHA256SUMSと整理方針READMEを同梱。
Claude Code
ガイドページが整いました。お渡しの準備ができています。
Claude Code
サーバー契約のご案内を、1画面ずつ進めるガイドページとして作成しました。対応者の方がこのページだけで ConoHa VPS の契約を完了し、接続用の鍵ファイルと IP アドレスを中田へお送りいただくところまで進められる内容です。
構成
1. 契約が必要な理由
2. 料金とプランの決め方(メモリ2GBプラン。料金は 9/24 に ConoHa 公式サイトで確認)
3. 申込の前に用意するもの
4. 申込の手順(申込画面へ直接開けるボタン、画面の写真に操作する場所の印付き)
5. 接続用の鍵ファイルのダウンロード
6. IP アドレス・接続の許可・自動更新の確認
7. 鍵ファイルと IP アドレスを中田へ送って完了
そのほか
- 料金や手順の公式ページへのリンク
- 画面写真の拡大表示
- 案内文の音声読み上げ(オン・オフ切り替え可)
- 形式は HTML ファイル1つで、ブラウザで開くだけで動きます
ガイドページの修正と調整を行います。
調整が整い次第、ガイドページをお渡しします。
なお、ページに載せている「まとめトク」の料金は 10/1 申込分までのキャンペーン価格です。お渡しの時点で期限を過ぎている場合は、公式の料金を確認し直して反映します。
Claude Code
目的:サーバー契約をお願いしているが、まだ動いてもらえていない。契約する内容を改めて紹介し、契約の流れを案内する(コンシェルジュする)、シンプルで分かりやすいサポートページを作る。
決まっていること
- 読む人の呼び方は 「対応者」。「上司向け」などの言い方はページにも説明にも使わない
- 構成:対応者が最初に「なぜ必要か・費用・決めてもらうこと」を把握でき、その後に契約の流れ(手順)が続く形
- 形式:単体の .html 1ファイル。JavaScript はファイル内にインラインで書く
- 置き場所:作成日の日付フォルダ(例 /Users/nakatafumito/Workspace/<作成日>/asp-server-contract-support/index.html。フォルダ名は仮)
- 料金:作成日に ConoHa 公式サイトで調べ直して載せる(8/18 時点の値は使わない)。調べた日付をページに書く
材料
- コメント 1235「新規サーバー契約・移行 指示書」(8/18)
- 契約仕様:ConoHa VPS 2GBプラン / Ubuntu 24.04 LTS / 東京 / 自動バックアップ任意・推奨 / PLUS社名義で新規契約(名義変更ではない)
- 用意・決定してもらうもの:法人名義の ConoHa アカウント、支払い方法、root パスワード(共有はコメント欄以外の経路)、SSH 方針の承認、作業用ユーザー名、通知先
- 契約後に共有してもらう情報:IP アドレス、初期ログイン手段、コントロールパネル担当者
- 判断してもらう点:ASP 管理画面の IP 制限、通知先、data-organizing.com の扱い、バックアップ、移行希望時期
- コメント 1236「サーバ契約後の作業 A〜H」
- 旧レポート(契約のお願い):https://plus-creative.xyz/nakata/plus_ai_report/detail/?id=3
作成日にやる手順
1. ConoHa 公式サイトで、料金、申込画面の選択肢(プラン・OS・リージョン・バックアップ)、法人名義での申込の流れを確認する
2. 1235 の内容を、対応者が迷わず手を動かせる順に並べ直してページを作る
3. PC 幅とスマホ幅で表示崩れ・コンソールエラーが無いことを確認し、中田に URL(フルパス)を渡す
4. 当月アーカイブ(nakata-studio/
887f55f(slnm_afib.py)5c5fe2f(data-organizing_afiB_plus0501_referrer_get.py)_btlr_fetch.py、slnm_a8_6.py、slnm_gladone.py、slnm_nahato.py、slnm_organicgroup.py_btlr_referrer.py(OrganicGroup・Gladone・Nahato の共通取得処理)、data-organizing_A8_plusAD02_referrer_get.py、data-organizing_gladone_referrer_get.py、data-organizing_nahato_referrer_get.py、data-organizing_organicgroup_referrer_get.py
Claude Code
理由:この確認の目的は「移行で壊れていないか(今の本番と同じに動くか)」。照合は移行の合否に関係しないため不要と判断した(中田了承)。
反映 - 記録ページ 02_asp_referrer.html:JANet pp2005141 の④を OK に変更、Felmat・SLVRBULLET のメモから「未照合」を削除。記録表は 12/12 完了。焼き込み済み、当月アーカイブにも保存(サイズ一致)
次にやること(1271 の 2〜5 を繰り上げ)
1. 中田:片付け _demo で ./run_demo.sh clean(確認を続けるなら残す)
2. 中田判断:afiB 修正(2ファイル1行ずつ)のコミットと、asp_referrer/_btlr_referrer.py の Git 登録
3. 契約後サーバー作業の設計ページを作る(8/18 コメント「A〜H」と 1271 の「本流の注意点」が材料)
4. Lacoco(発生額・リファラーとも)は保留のまま
Claude Code
1269(引き継ぎ)の「8. 残作業」の 3 を実施した。前日 9/16 分を、送信先をモックに向けたデモで1本ずつ確認した(実行は中田、準備・差分確認・記録は Claude)。
| ASP | 件数 | 結果 |
|---|---|---|
| SLVRBULLET | 0 | OK(管理画面での0件照合は未) |
| AccessTrade plus0502 | 4 | OK |
| afiB plus0501 | 39 | OK(9/15 のログインボタン修正で正常) |
| Felmat | 82 | 件数OK。参照元URLが空の行が4件(管理画面と未照合) |
| OrganicGroup | 5 | OK |
| Gladone | 11 | OK(承認9・承認待ち2) |
| Nahato | 5 | OK(報酬はすべて0円。管理画面の0円表示と一致) |
| JANet pp1037642 / pp2005790 / pp2007625 / pp2007788 | 0 | OK(CSV は出るが中身0件) |
| JANet pp2005141 | 3 | 件数OK。参照元URLが3件とも空(管理画面と未照合) |
| Lacoco | − | 中田判断でスルー |
./run_demo.sh referrer <a8|slvrbullet|accesstrade|afib|felmat|organicgroup|gladone|nahato|janet1037642|janet2005141|janet2005790|janet2007625|janet2007788>(省略時 A8)_demo で ./run_demo.sh clean(.env_asp・受信ログ・CSV を削除。モックも止まる)。確認を続けるなら残す
Claude Code
このコメントは、会話の記憶を持たない次のAIセッションが、ここから作業を再開するための引き継ぎです。1268(9/15 の進捗)とあわせて読んでください。認証情報の値はここには書いていません。
記録・引き継ぎ
- 発生額の記録ページ:/Users/nakatafumito/Workspace/20260914/asp-server-migration/01_asp_data_get.html
- リファラーの記録ページ:/Users/nakatafumito/Workspace/20260914/asp-server-migration/02_asp_referrer.html
- 記録ページの焼き込み道具:/Users/nakatafumito/Workspace/20260914/asp-server-migration/_tools/(bake_server.py・bake_apply.py)
- 9/15 のモック受信ログの控え:/Users/nakatafumito/Workspace/20260914/asp-server-migration/_evidence/(アカウントIDを含むためアーカイブには置かない)
- 当月アーカイブ:GitHub nakata-studio/202609 の 20260914/asp-server-migration/(anonymousapart の gh トークンで操作)
デモ(確認用の実行環境)
- デモ用フォルダ:/Users/nakatafumito/dev/htdocs/plus_asp_data_get_test/demo/
- 実行:_demo/run_demo.sh(mock / data_get [対象] / referrer / stop / clean)
- data_get の対象名:a8 / slvrbullet / accesstrade / afib / felmat / tgafi / organicgroup / gladone / nahato / janet1037642 / janet2005141 / janet2005790 / janet2007625 / janet2007788
- デモ本体:_demo/demo<対象>_data_get.py(リファラーは demo_a8_referrer.py の1本のみ)
- btlr系3本の共通補助ファイル(デモ版):_demo/_btlr_fetch.py
- 一時停止の部品:_demo/_pause.py(step で Enter 待ち、show で値を表示。DEMO_AUTO=1 で止まらない)
- モック受け先:_demo/mock_receiver.py(127.0.0.1:8877。POST /asp_data と /asp_referrer を受けて received.jsonl に記録。check には空を返す。複数接続対応済み)
- 設定ファイル:_demo/.env_asp(中田が配置、clean で削除)
本流(移行ブランチ)
- 発生額:/Users/nakatafumito/dev/htdocs/plus_asp_data_get_test/asp_data_get/(ブランチ agent/selenium4-migration、先頭 4232a7b)
- リファラー:/Users/nakatafumito/dev/htdocs/plus_asp_data_get_test/asp_referrer/(ブランチ agent/selenium4-migration、先頭 964913f)
- Python:asp_data_get/venv/bin/python3(Selenium 4.47)
../asp_data_get/venv/bin/python3 -c "from _lib_env import env; print(env('ASP_DATA_API_URL'), env('SUPPORT_MAIL'))" を実行し、モックと中田のアドレスが読めることを確かめる./run_demo.sh mock でモックを起動し、http://127.0.0.1:8877/ python3 /Users/nakatafumito/Workspace/20260914/asp-server-migration/_tools/bake_server.py をバックグラウンドで起動python3 /Users/nakatafumito/Workspace/20260914/asp-server-migration/_tools/bake_apply.py 01_asp_data_get.html で差し込む- 注意:焼き込み後のHTMLは、ボタン属性が data-copy="" の形になっている。文字列置換のときはこの形に合わせる
今回(9/15)行ったもの
- asp_data_get/slnm_afib.py:ログインボタンを見えている方から選ぶ1行
- asp_referrer/data-organizing_afiB_plus0501_referrer_get.py:同じ1行
今回の作業ではない変更(中身未確認)
- asp_referrer の A8 5本(plus02・plus03・plus0501・plusAD・stormAD)が変更済み
- 未追跡:asp_data_get の _btlr_fetch.py・slnm_a8_6.py・slnm_gladone.py・slnm_nahato.py・slnm_organicgroup.py、asp_referrer の _btlr_referrer.py・A8 plusAD02・gladone・nahato・organicgroup
Claude Code
9/15 の作業のまとめです。発生額(asp_data_get)の4工程確認を、保留の Lacoco を除く13本で完了しました。本番の受け先には1件も送っていません。
| ASP | アカウント | 取得値 | 結果 |
|---|---|---|---|
| SLVRBULLET | — | 14,000円 | 完了 |
| AccessTrade | plus0502 | 17,000円 | 完了 |
| afiB | plus0501 | 365,250円 | 完了(修正後) |
| Felmat | plus0501 | 1,735,193円 | 完了 |
| TGaffi | plus-tg | 0円 | 完了 |
| OrganicGroup | plus-ad | 0円 | 完了(前日の発生0件) |
| Gladone | plusAD | 102,200円 | 完了 |
| Nahato | 625_plus | 0円 | 完了(管理画面でも0円) |
| JANet | pp1037642 | 0円 | 完了 |
| JANet | pp2005141 | 38,000円 | 完了 |
| JANet | pp2005790 | 0円 | 完了(管理画面でも0円) |
| JANet | pp2007625 | 0円 | 完了(管理画面でも0円) |
| JANet | pp2007788 | 0円 | 完了(管理画面でも0円) |
| Lacoco | pluslacoco | — | 保留 |
afiB のログインボタンの選び方(移行ブランチ)
- 8/24 の改修で、ID欄とパスワード欄は「見えている方」を選ぶように直されていたが、ログインボタンだけは1つ目(非表示・別フォーム)を掴んでいた
- そのためログインボタンを押せず、Err になっていた
- ボタンも「見えている方」を選ぶ1行に修正。発生額とリファラーの2本とも同じ不具合があったため両方を修正した
- 修正前の実行で、モックに Err を2回送り、エラーメール(宛先は中田)も送信している
- 修正はまだコミットしていない
いずれもコードから読み取った事実で、実際に起きたことは確認していない。
Lacoco は報酬を計算するための対応表(lacoco_sales_tb)を、最初に受け先から取得する。モックはこの表を返せないため、デモが途中で落ちる。対応案は次の2つで、どちらにするかは未決。
Claude Code
9/14〜9/15 の進捗と、次のステップをまとめます。確認作業そのもの(ASPへのログインを伴うデモの実行)は、まだ1本も行っていません。現時点は、実行前の準備と安全確認が終わった段階です。
9/14 の予定コメントでは置き場所を plus_ai_report としていましたが、中田の指示でローカルのHTMLに変更しました。発生額とリファラーで工程が違うため、1枚ずつに分けています。
| ページ | 場所 |
|---|---|
| 発生額(asp_data_get) | /Users/nakatafumito/Workspace/20260914/asp-server-migration/01_asp_data_get.html |
| リファラー(asp_referrer) | /Users/nakatafumito/Workspace/20260914/asp-server-migration/02_asp_referrer.html |
| 項目 | 状態 |
|---|---|
| 現在時刻が 9:45 以降 | 未(9/15 08:35 時点で現行cronの時間帯) |
| 本流が最新(agent/selenium4-migration) | 済 |
| デモと本流の差分の確認 | 済 |
| 設定ファイルの配置と、送信先がモックを向いていること | 保留(送信先は済、エラーメールの宛先が未) |
| 本流のディレクトリに設定ファイルが無い | 済 |
| モック受け先の起動 | 済 |
中田の対応
1. エラーメールの宛先にするメールアドレスを伝える
2. 9:45 を過ぎてから開始する
その後の進め方
1. 設定ファイルのエラーメール宛先を中田に変える(元の行はコメントアウトで残す)
2. SLVRBULLET(発生額)のデモを作る。本流をコピーし、一時停止だけを差し込む
3. 本流との差分が、一時停止の差し込みと画面表示だけであることを確認する
4. デモを実行し、⓪確認・①ログイン・②取得・③送信・④反映を1工程ずつ見て、記録ページに書く
5. 1社1アカウントのASP(AccessTrade、afiB、Felmat、Lacoco、TGaffi、OrganicGroup、Gladone、Nahato)を同じ手順で進める
6. JANet の5本をまとめて進める。残り4本のエラーメール条件は、デモ作成時に読む
7. 発生額が終わったら、リファラー側に移る。リファラー用の設定ファイルの用意から始める
8. 全件終了後に片付け(受信ログ・CSV・設定ファイルの削除、モック停止)を行い、記録ページの書き出しをこのタスクにコメントする
まだ着手していないもの - 契約後サーバー作業の設計ページ
Claude Code
本日は3件を進めます。9/10に予定していた作業の持ち越しです。
現行サーバーのcronが6:00〜9:44に同じASPアカウントへログインするため、この時間帯はASPへのログインを行いません。同時ログインで片方が弾かれるためです。
| 時間 | 作業 | ASPへのログイン |
|---|---|---|
| 〜9:44 | 手順書兼記録ページの作成、デモの対象拡張 | しない |
| 9:45〜 | 発生額の4工程デモ → リファラーの4工程デモ | する |
| 残り時間 | 契約後サーバー作業の設計ページ | しない |
9/8にA8 plus0501で行った「ログイン → 取得 → 送信 → 反映」の確認を、残りのASPでも同じ手順・同じ観点で行い、結果を1か所に残します。手順と記録を別々にすると、どの手順で確認した結果なのかが追えなくなるため、1ページにまとめます。
plus_ai_report に新規ページとして作成します。移行レポート(id=3)とは分け、確認作業の記録専用とします。
| 項目 | 内容 |
|---|---|
| ASP / アカウント / スクリプト名 | どれを動かしたか |
| 実施時刻 | cron時間帯を避けたことの証跡 |
| ①ログイン | OK / NG |
| ②取得 | OK / NG と取得値(発生額は報酬額、リファラーは件数) |
| ③送信 | OK / NG と送信件数 |
| ④反映 | モック受け先の一覧に載ったか |
| メモ | 画面変更・待ち時間・例外など |
認証情報(ID・パスワード・APIキー)はページに一切書きません。
場所: /Users/nakatafumito/dev/htdocs/plus_asp_data_get_test/_demo/
発生額: 10社・14本
| ASP | スクリプト |
|---|---|
| SLVRBULLET | slnm_slvrbullet.py(APIのためChromeを使わない) |
| AccessTrade | slnm_accesstrade.py |
| afiB | slnm_afib.py |
| Felmat | slnm_felma.py |
| JANet | slnm_janet.py ほか4本(計5本) |
| Lacoco | slnm_lacoco.py |
| TGaffi | slnm_tgafi.py |
| OrganicGroup | slnm_organicgroup.py |
| Gladone | slnm_gladone.py |
| Nahato | slnm_nahato.py |
リファラー: 9社・13本
| ASP | スクリプト |
|---|---|
| SLVRBULLET | data-organizing_slvrbullet_referrer_get.py |
| AccessTrade | data-organizing_accesstrade_plus0502_referrer_get.py |
| afiB | data-organizing_afiB_plus0501_referrer_get.py |
| Felmat | data-organizing_Felmat_referrer_get.py |
| JANet | data-organizing_janet_pp1037642 ほか4本(計5本) |
| Lacoco | data-organizing_lacoco_pluslacoco_referrer_get.py |
| OrganicGroup | data-organizing_organicgroup_referrer_get.py |
| Gladone | data-organizing_gladone_referrer_get.py |
| Nahato | data-organizing_nahato_referrer_get.py |
発生額を先に全社終え、その後リファラーに移ります。
空のサーバーとSSH接続用のアカウントだけを渡された状態から、1段ずつ実行と確認を繰り返して、自動実行の登録まで到達できる手順ページを作ります。作業を中断・引き継ぎしても、どこまで終わったかが分かる形にします。
plus_ai_report に新規ページとして作成します。
8/18に投稿したA〜Hの工程を土台に、各段を次の4点セットで書き直します。
| 各段に書くこと | 理由 |
|---|---|
| 実行する操作 | 何をするか |
| 確認コマンド | 実行した結果を自分で確かめる方法 |
| 期待する結果 | 合否の判断基準 |
| 失敗したときの戻し方 | 締め出しや設定破損からの復旧 |
締め出しの危険がある4〜6は、それぞれ独立した段にして「確認してから次へ」を必須にします。
Claude Code
本日は、改修後のスクリプトが実際にどう動くかを、依頼者(中田)自身がターミナルとブラウザで1工程ずつ目視確認しました。
対象はA8のplus0501アカウントで、発生額取得とリファラー取得の両方です。以下の4工程を、工程ごとに一時停止しながら確認しました。
結果は、発生額が1,024,940円(9/7分)で1件、リファラーが21件(すべて9/7のCV)で、いずれも正しく送信・反映されました。リファラー側は8/27に修正した日付指定(プルダウン方式)が有効に働き、前日分だけが正しく取れています。
送信先の受け先には本番(plus-creative.xyz / data-organizing.com)ではなく、手元に用意した模擬の受け先を使いました。設定ファイルの送信先URL2行だけを差し替えており、ログインとデータ取得は本物のASPで動いています。したがって本番の受け先には1件も送っていません。
本流スクリプトには一切手を入れていません。実演に使ったのは本流のコピーに「工程ごとに止まる処理」を差し込んだもので、差分はその差し込みだけです。本流のディレクトリには認証情報を置いていないため、誤って本流を実行しても本番へは送れない状態にしています。実演終了後、認証情報は削除済みです。
サーバーは未契約です。契約前に確認できることは、これで一通り完了しました。
第一に、同じ4工程の確認を他のASPでも行います。発生額側は残り15本、リファラー側は残り14本が対象です。
第二に、契約後のサーバー作業の設計です。空のサーバーとSSH接続用のアカウントだけを渡される前提で、最低限のセキュリティ設定(鍵認証・ポート変更・ファイアウォール)、実行環境のインストール、スクリプトの配置、自動実行の登録までを、1つ1つ確認しながら進められる作業手順ページを作成します。
Codex
【進捗】
移行対象39本の確認が完了し、ブラウザ系37本中35本はログイン・レポート画面到達まで確認済みです。現行サーバーには手を加えておらず、日次取得は従来どおり稼働しています。
【本日の作業】
- GitHub未登録の8本と共通モジュール2本を、現行サーバーから安全に再取得
- 認証情報を除外したうえで、コードと検証結果を整理
- 未登録8本をGitHubへ正式登録するための準備
- A8 stormADを今後も取得対象に残すか、対象外にするか確認
- タスクの進捗・チェックリストを現在の状況に更新
- 新サーバー契約状況を確認し、契約済みの場合は構築作業へ着手
Claude Code
本日の作業内容と、移行に向けて残っている準備をまとめます。
移行対象となる全39本(発生額20本・リファラー19本)のうち、35本でログインからレポートページ到達までの動作確認が完了しました。残る2本はA8のstormADアカウントで、これはご指示によりスルーとしています。
これにより、Selenium 4対応と新環境での動作確認は、実データ取得を除いてほぼ完了した状態です。
本日最も重要な成果です。現行サーバーが実際に動かしているスクリプトとGitHubリポジトリの中身を突き合わせたところ、8本がリポジトリに登録されていないことが判明しました。
発生額側4本(A8の6アカウント目、オーガニックグループ、グラッド、ナハト)、リファラー側4本(同じ4アカウント分)です。リポジトリだけを見て移行していたら、この4社分のデータ取得が新サーバーで丸ごと止まっていました。
中田様から現行サーバーの最新ファイル一式をご提供いただき、8本すべてを取り込んで改修し、動作確認まで完了しています。
あわせて、オーガニックグループ・グラッド・ナハトの3社は同一システムの別ドメインで、処理が共通モジュール2本にまとめられていることも判明しました。この共通モジュールも古い記述のままだったため、同時に改修しています。
テスト中に、移行とは無関係に現行環境でも発生していたと思われる問題が見つかりました。
1件目はA8リファラー6本の日付指定です。日付の欄はプルダウン形式ですが、スクリプトは文字を打ち込む方式で操作しようとしていたため、日付が設定されないまま検索が実行される状態でした。終了日にいたっては設定処理自体がありませんでした。プルダウン専用の操作方法に変更し、開始日・終了日とも前日を指定するよう修正済みです。実機で昨日の日付が正しく設定されることを確認しました。
2件目はA8 stormADアカウントのログイン失敗です。他のA8アカウントがすべて成功する中、このアカウントだけログイン後にトップページへ戻されます。現行サーバーの実行ログでもこのアカウントの報酬は0で、設定ファイル上のパスワードの文字数も他アカウントと明らかに異なっていました。パスワードが変更されて設定が古いままの可能性がありますが、ご指示によりスルーとしています。
ご質問いただいた送信先2つ(plus-creative.xyz と data-organizing.com)は、いずれも変更不要です。
どちらもXserver上にあり、今回移すConoHa VPSとは別契約のため、移行の対象外です。またスクリプト側も送信先URLを設定ファイルで管理しているため、現行の設定ファイルを新サーバーへ持っていけば、送信先は自動的に同じになります。コードの修正は発生しません。
中田様が1本ずつ動作を確認できるよう、テスト環境と記録用のチェックシートを整備しました。テスト環境の構成は現行サーバーと完全に一致しています(発生額20本・リファラー19本)。動作確認時のスクリーンショットは56枚を保管しており、チェックシートの各行から確認できます。
なお、本日の作業内容はGitHubリポジトリには一切反映していません(ご指示のとおり)。テスト用に取得した認証情報も、作業終了後にすべて削除済みです。
・ConoHa VPSの新規契約(2GBプラン/Ubuntu 24.04 LTS/東京リージョン)
・契約後、新サーバーのIPアドレスと初期ログイン情報のご共有
・ASP各社の管理画面でIP制限をかけているかのご確認(かけている場合、新サーバーのIPを許可リストへ追加する作業が必要です)
・エラー通知の宛先と、リファラー側で使用しているSlack通知を現行のまま使うか、PLUS社側のものへ切り替えるかのご判断
・移行を実施する時期のご希望(月初・月末はデータ確認の負荷が高いため、月の中旬を推奨します)
・新サーバーの初期設定(タイムゾーンを日本時間へ変更、日本語環境の導入、作業用ユーザーの作成、SSH接続の安全化)
・実行環境の構築(Python・Chrome・必要なライブラリの導入)
・スクリプトと設定ファイルの配置
・実データでの動作確認(前日分のデータを実際に取得し、金額やCV件数が正しいか、受け先2サイトへ正しく登録されるかの確認)
・自動実行(cron)の登録と、初回自動実行の立ち会い確認
・1〜2週間の並行稼働と、新旧の登録結果の日次突合
・一致を確認したうえで、現行サーバー側の自動実行を停止
・現在の8本の未登録スクリプトをGitHubリポジトリへ正式に登録するかどうか(登録しない場合、今後も同じ移行漏れリスクが残ります)
・A8 stormADアカウントを今後も取得対象として残すか、除外するか
並行稼働の期間中は、新旧2台から同じASPアカウントへ同時刻にログインすると、ASP側の制限で片方が弾かれる可能性があります。そのため実行時刻をずらす必要があります(例:現行は朝7時44分から、新サーバーは10時44分)。
Claude Code
現行サーバーの最新ファイル一式をご提供いただき、ありがとうございました。GitHub未管理だった8本すべてを取り込み、Selenium 4対応と動作確認まで完了しました。
発生額側4本(A8 plusAD02、オーガニックグループ、グラッド、ナハト)、リファラー側4本(同じ4アカウント分)のすべてで、ログインからレポートページ到達までを確認しました。各社スクリーンショットを取得済みです。
オーガニックグループ、グラッド、ナハトの3社は同一システムの別ドメインで、共通モジュール(_btlr_fetch.py / _btlr_referrer.py)に処理がまとめられていました。この共通モジュール2本がSelenium 3のままだったため、あわせて改修しています。
A8の6アカウント目(plusAD02)については、リファラー側に他のA8と同じ日付プルダウンの不具合があったため、先日と同じ修正を適用しました。
受領した8本と共通モジュール2本に対し、既存15本と同じ内容の対応を行いました。旧APIの置換、chromedriver_binaryの廃止、新ヘッドレスの明示、絶対パスの撤廃、ウィンドウサイズの指定です。全44本が構文チェックを通過しています。
全39本のうち、ログイン到達を確認できたものが35本になりました。残る2本はA8 stormADの発生額側とリファラー側で、これはご指示によりスルーとしています。未確認として残っていた8本は、今回すべて解消しました。
テスト環境の構成が現行サーバーと完全に一致(発生額20本・リファラー19本)したため、これで移行対象の全体像が確定しました。
ご提供いただいたフォルダに認証情報ファイル(.env_asp)が2つ含まれていました。作業には支障ありませんでしたが、受け渡し用フォルダに認証情報が残り続けるのは望ましくないため、削除してよろしいでしょうか。必要な際は現行サーバーから直接取得できます。
なお、ご指示のとおり、今回の作業内容はGitHubリポジトリには一切反映していません。
Claude Code
A8リファラー5本の日付指定を修正しました。あわせて、前回のコメントに誤りがありましたので訂正いたします。
前回「startYm / startD / reportSearchBtn が現行画面に存在しない」とお伝えしましたが、これは誤りでした。私が別の画面(コンバージョンリファラレポート)を調べて報告してしまったためです。実際にスクリプトが使う成果発生レポート画面を確認したところ、これら3つはいずれも現在も存在していました。誤った情報をお伝えし、申し訳ありません。
正しい原因は要素の種類でした。startYm と startD はテキスト入力欄ではなく、プルダウン(select要素)です。スクリプトは文字を打ち込む send_keys という方法を使っていましたが、プルダウンに対してこの方法は機能しません。そのため日付が設定されないまま検索が実行されていました。
さらに、開始日だけを設定して終了日(endYm / endD)を設定していないため、仮に開始日が入っても期間が「昨日から今日まで」ではなく「昨日から当月末まで」のようにずれる状態でした。
プルダウン専用の操作方法(Select)に変更し、開始日と終了日の両方に昨日の日付を設定するようにしました。値の形式は実際の画面から確認しています(年月は2026/08のようにゼロ埋め、日は26のようにゼロ埋めなし)。
修正後、実際にA8へログインして動作を確認しました。開始日・終了日とも昨日(2026/08/26)が正しく設定され、検索が実行され、CSVダウンロードボタンが表示されるところまで確認できています。
対象はA8リファラー5本(plus0501 / plus02 / plus03 / plusAD / stormAD)すべてです。
テスト内容のリポジトリへの反映は行っていません。今回の修正はテスト環境上のみで、GitHubへのコミットもしていません。A8 stormADのログイン失敗については、ご指示のとおり対応せず記録のみ残しています。
この日付指定の不具合は移行とは無関係に現行サーバーでも発生していたはずのものです。A8のリファラー取得データが想定と異なっていた場合、この不具合が原因の可能性があります。
Claude Code
リファラー側(asp_referrer)のログイン到達検証を完了しました。あわせて、移行前に対応が必要な問題を新たに1件検出しています。
成功: A8 4アカウント(plus0501/plus02/plus03/plusAD)、JANet 5アカウント、AccessTrade、afiB、Felmat、Lacoco。各社ともログインからリファラーレポートページ到達まで確認し、スクリーンショットを取得済みです。
失敗: A8 stormAD の1本のみ。これは発生額側と同一アカウントで、原因も同じ(パスワード変更の可能性)です。A8管理画面でのご確認をお待ちしています。
A8のリファラー取得5本は、日付の指定に startYm(年月)と startD(日)という2つの入力欄、および reportSearchBtn という検索ボタンを使う作りになっています。
しかし現在のA8管理画面(新レポートβ版)を実際に確認したところ、これら3つはいずれも存在せず、日付欄は startYmd という1つの入力欄(2026/08/01 形式)に変更されていました。
つまりA8のリファラー取得は、現行サーバー上でも日付の指定に失敗している可能性が高い状態です。移行の有無にかかわらず、この5本はセレクタの修正が必要です。ログイン自体は正常なので、修正すれば復旧できる見込みです。
発生額側と同様に、現行cronが実行している19本のうち4本がGitHub未登録でした。
発生額側の未管理4本と同じASPの組み合わせであり、両側で同じ4ASPがリポジトリから欠落していることが確定しました。
全39本(発生額20本・リファラー19本)のうち、ログイン到達の確認が済んだものが27本、失敗1アカウント(発生額・リファラー各1本)、未管理により保留が8本です。
第一に、未管理スクリプト8本(発生額4本・リファラー4本)をリポジトリへ取り込んでよいか。第二に、A8 stormADアカウントのパスワードが変更されていないかのご確認。第三に、今回検出したA8リファラーの日付セレクタ修正を、移行作業に含めて実施してよいか。
Claude Code
テスト環境で1本ずつ検証を進めた結果、移行計画に影響する問題が3点見つかりました。
現行ConoHaのcronは発生額スクリプトを20本実行していますが、GitHubリポジトリ(PLUS-Company/asp_data_get)には16本しか登録されていません。以下4本がリポジトリ管理外です。
認証情報ファイルにもORGANICGROUP・GLADONE・NAHATOのキーが存在しており、実際に稼働している取得処理です。リポジトリだけを見て移行すると、これら4ASP分の発生額が新サーバーで取得されなくなります。
対応として、この4本を現行サーバーから取得してリポジトリへ取り込み、他と同じSelenium 4対応を施したうえでテスト対象に加える必要があります。実施してよいかご判断ください。
ファイル番号とアカウントの並びがずれていました。実測値は以下です。
数字順に対応していると想定すると誤ったアカウントで検証してしまうため、実測に基づき修正済みです。
他のA8アカウントが全て成功する中、stormADのみログイン後にトップページへ戻されます(再現性あり)。調査したところ、現行サーバーの本日の実行ログでもこのアカウントの報酬は0で、認証情報のパスワード長が他アカウントと明確に異なっていました。パスワードが変更されて設定ファイルが古いままの可能性があります。
A8管理画面でstormADアカウントのパスワードが変更されていないか、ご確認いただけますでしょうか。
発生額側16本のうち、Selenium利用の15本を検証し14本が成功しました(A8 4アカウント、JANet 5アカウント、AccessTrade、afiB、Felmat、Lacoco、TGaffi)。失敗はA8 stormADの1本のみで、原因は上記3のとおりです。
Claude Code
Selenium 4 対応のコード改修は発生額・リファラーの全32本とも完了し、GitHub の agent/selenium4-migration ブランチへ push 済みです。現行 ConoHa サーバーのコードには一切手を付けていないため、日次取得は従来どおり動いています。
現在は、その改修版を1本ずつ動作確認するためのテスト環境(中田のローカル)を構築中です。コード本体と発生額側の実行環境までは配置が終わり、残りはリファラー側の実行環境と検証用スクリプトの配置です。あわせて、確認の記録を1本ずつ残していくためのチェックシートを用意しました。
本番データを汚さないよう、テストを2段階に分けています。
各ASPの管理画面にログインし、レポートページまで到達できるかだけを確認します。CSVのダウンロードも、受け先への登録も行わないため、本番データは1件も動きません。ASP側の画面変更やChrome更新による影響は、この段階で検出できます。
対象は発生額16本・リファラー15本の計31本です。ASP内訳はA8(5アカウント)、JANet(5アカウント)、AccessTrade、afiB、Felmat、Lacoco、TGaffi、SLVRBULLETの8社16アカウントです。
実際に前日分の発生額・CVを取得し、値が正しいか、受け先2サイトへ正しく登録されるかを確認します。CSVのダウンロード、集計値の妥当性、リトライとSlack通知の動作もここで見ます。本番の受け先を汚さないため、この段階は新サーバー構築後に、実行時刻をずらした並行稼働で行います。
同一ASPアカウントに現行サーバーと同時刻でログインすると、ASP側の同時ログイン制限で片方が弾かれる可能性があります。そのためテストは現行cronの実行時間帯(発生額7:44〜9:44、リファラー6:00)を避けて実施します。
テスト環境を配置したフォルダが別マシンとのファイル同期対象になっており、実行環境のファイルが同期処理で巻き戻される事象が発生しています。原因は特定済みで、同期の除外設定を追加するか配置場所を変更することで解消できる見込みです。本日中に解消し、フェーズAに着手します。
契約前に着手できる作業(コード改修とログイン動線の確認)は完了しています。サーバー契約の準備が整いましたら、IPアドレスと初期ログイン情報をお知らせください。受領後、初期設定からcron登録まで進めます。
Claude Code
重要: 現行 ConoHa サーバー(/var/www/html/asp_data_get, /var/www/html/asp_referrer)で稼働中のコードには一切手を付けていません。改修はすべてローカルにコピーした実測物の上で行っています。現行の日次取得は従来どおり動いています。
方針: 一括移行や現行の置き換えはしません。現行を無傷のまま残し、独立したテスト環境で1本ずつ・1工程ずつ、依頼者(中田)自身が動きを目視確認しながら進めます。
サーバー契約(指示書#1-3)は並行で進めていただける状態です。契約後の初期設定・cron登録・並行稼働は、上記テストで各スクリプトの正常動作を確認できてから着手します。
Claude Code
Selenium 4対応のコード改修と、実ASPアカウントでのログイン検証まで完了しました。両リポジトリとも agent/selenium4-migration ブランチへ push 済みです。
発生額側 8社中、Selenium を使う7社すべてでログイン→レポートページ到達を確認しました(各社スクショ取得済み):
A8 / AccessTrade / Felmat / JANet / Lacoco / TGaffi = 一発PASS。afiB のみ当初FAILし、原因特定して修正→PASS。
SLVRBULLET は JSON API 型でChrome更新の影響を受けないため対象外。
afiB のログインが失敗していました。原因は3点:
1. スクリプトが afi-b.com のトップページの隠れログインフォーム(#formPartnerId)を使っていたが、現在のUIではこのフォームは非表示(displayed=False)で操作不能。
2. ログインボタンのセレクタ button.btn-partner が「無料会員登録」ボタンにも一致する誤セレクタ。
3. さらに afb はログイン欄の id が DOM上で2重定義されており、通常の取得だと操作できない側を掴む。
修正: 専用ログインページ(/general/partner/requiredlogin)を使い、name属性+可視判定で実入力欄を選ぶ形に変更。発生額側・リファラー側の両方の afiB スクリプトに反映済み。
【要確認】この不具合は「afi-b.com のトップUI変更でセレクタが合わなくなった」もので、いつから失敗していたかはコード側からは特定できません。受け先(plus-creative.xyz の asp_data)で afiB の日次発生額レコードが直近いつまで入っているかをご確認いただけると、影響期間が確定します。リファラー側の受け先には afiB のデータ蓄積自体はあります。
新Chromeの新ヘッドレス(--headless=new)は既定ウィンドウが小さく、ページ下部の要素が画面外だと入力が弾かれます(afiB で顕在化)。両リポジトリの全Seleniumスクリプトに --window-size=1920,1080 を追加しました。
完了: 指示書#6「契約前に着手できること」の 1(コード改修 全32本)と 2(手元でのASPログイン検証)。
残り(新サーバー契約後): サーバー初期設定、CSVダウンロード〜受け先insertまでの実データ経路の検証、cron登録、1〜2週間の並行稼働での新旧突合。
サーバー契約の準備が整いましたら、IPアドレス等をお知らせください(指示書#3)。
Claude Code
コード改修フェーズが完了しました。両リポジトリとも agent/selenium4-migration ブランチへ push 済みです。
指示書ではB案「.env_asp にパスを持たせる」としていましたが、実装では「スクリプト自身の位置から相対導出」を採用しました。設定項目が増えず設定漏れの失敗モードが消える・_lib_env.py の既存慣習と一致・どこに置いても無改修で動くためで、「コードから絶対パスを消す」目的はより強く達成されます。
Claude Code
本日はチェックリスト3「asp_data_get バージョンアップ対応」に着手します。
予定作業:
1. Selenium 4対応ブランチ作成
2. 改修7項目の実施(chromedriver_binary削除 / 旧API置換 / DesiredCapabilities削除 / --headless=new / パス環境変数化(B案) / シェルのvenv対応 / pandas 2系対応)
3. 手元環境(Python 3.12 + Selenium 4)での動作検証
4. 進捗次第で asp_referrer 側にも着手
なお「サーバ契約後の作業工程検討」は2026-08-18のコメントにてA〜H工程として投稿済みのため、チェックを入れて消化しました。
中田
対応ブランチ作成 → 改修7項目(chromedriver_binary削除 / 旧API置換 / DesiredCapabilities削除 / --headless=new / パス環境変数化B案 / シェルのvenv化 / pandas 2系)
手元検証環境の構築 — Mac に Python 3.12 + Selenium 4 の venv を作り、最低1本(SLVRBULLET は API 型なので最初の疎通確認に最適)を実行確認
(進捗次第)asp_referrer 側の同改修に着手(チェックリスト4)
中田
サーバ契約後の作業は、以下になります。
Ubuntu の初期状態はタイムゾーンがUTCで、日本語ロケールも入っていません。
この2つを直さないと、cronの実行時刻が9時間ずれ、ASP管理画面から取得した日本語が文字化けします。
取得スクリプトは「前日」を自分で計算しているため、OSの時刻がずれると取得対象日そのものが狂います。
タイムゾーンをJSTへ変更(timedatectl set-timezone Asia/Tokyo)
日本語ロケールの生成(ja_JP.UTF-8)とcron用の環境変数準備
日本語フォントの導入(fonts-noto-cjk)。Chromeが日本語を描画できないとDOM取得やデバッグ用スクショが読めなくなる
作業用一般ユーザーの作成とsudo付与。cronはこのユーザーで動かす(root不要)
パッケージ全体の更新
swapの確認。2GBプランなら通常は不要だが、Chrome多重起動時の保険として1〜2GB確保しておく
不要サービスの停止。今回のサーバーはWebを公開しないので、Apache/nginxは入れない
Ubuntu 24.04 特有のハマりどころが1つあります。
22.10以降のUbuntuはSSHがsystemdのsocket activationで起動するため、/etc/ssh/sshd_config の Port を変えるだけではポートが変わりません。ssh.socket 側の ListenStream も変更する必要があります。
手元でed25519鍵を作成し、公開鍵をサーバーへ登録
sshd_config でポート変更、PermitRootLogin no、PasswordAuthentication no
systemctl edit ssh.socket で ListenStream を新ポートへ上書き(これを忘れるとポートが22のまま)
変更適用前に別のターミナルで新ポートの接続確認をしてから既存セッションを閉じる(締め出し防止)
ufwで新SSHポートのみ許可
fail2banの導入
手元の ~/.ssh/config にホスト定義を追加
sudo systemctl edit ssh.socket
現行はChrome 86とSelenium 3.141で5年前のまま凍結されています。
新環境ではChromeが最新になるため、ドライバの取得方法そのものが変わります。
Selenium 4.6以降は同梱のSelenium Managerが対応ドライバを自動で解決するので、現行のように chromedriver-binary でバージョンを固定する必要がなくなります。
Python 3.12(Ubuntu 24.04 標準)と python3-venv の確認
プロジェクト用のvenvを作成。システムのPythonを直接汚さない
Google Chrome を公式aptリポジトリから導入。以降 apt upgrade で自動追従する
curl -fsSL https://dl.google.com/linux/linux_signing_key.pub
| sudo gpg --dearmor -o /usr/share/keyrings/google-chrome.gpg
依存パッケージの導入: selenium(4系)、pandas(2系)、requests。chromedriver-binary は入れない
Xvfbは入れない。現行も実際には未インストールで、ヘッドレスで動いていた
google-chrome --version と、Selenium から起動してページを取得できるところまで最小サンプルで確認
現行コードには /var/www/html/... が50箇所以上ハードコードされています。ここをどう扱うかで以降の作業量が変わるので、Eに入る前に決めます。
A案: 同じ /var/www/html/asp_data_get/ /var/www/html/asp_referrer/ を使う
パス関連の改修が不要になり、移行作業が最短で終わる
ただしWebサーバーを置かないのに /var/www を使う不自然さが残り、次に移設するとき同じ問題を繰り返す
B案: /opt/asp/ 配下へ移し、パスを環境変数化する(推奨)
.env_asp にインストールディレクトリとダウンロード先を持たせ、コードから絶対パスを消す
50箇所の置換が必要だが、これは今回のSelenium 4対応で全ファイルを触るついでに済む
次回以降のサーバー移設がパス無改修で済むようになる
推奨はB案です。 どのみち全32本を触る改修なので、ここで一緒に片付けるのが合理的です。
現在は毎朝7:44・8:44・9:44の3回動き、前日の発生件数と報酬をplus-creative.xyzへPOSTします。
ASP 8社・16アカウントぶんのログイン情報を扱うため、設定ファイルの権限管理が最重要です。
リポジトリを配置(PLUS-Company/asp_data_get、Selenium 4対応ブランチ)
.env_asp を現行サーバーから移送し、chmod 600 で配置。中身はASP各社のID/PW(16アカウント分)、受け先APIのURLとキー、メールAPIのシークレット、Basic認証、通知先アドレスの計38項目
ダウンロード用ディレクトリ(Downloads)の作成と書き込み権限確認
asp_data_get.sh の修正
冒頭の cd /var/www/html/asp_data_get/ を新パスへ
16箇所ある /usr/bin/python3 をvenvのPythonへ
export DISPLAY=:0 は不要になるので削除
16本の取得スクリプトを1本ずつ手動実行して確認
Selenium組(A8×5、Felmat、AccessTrade、afi-B、JANet×5、TG-Affiliate、Lacoco)はログイン動線が各社で違うため、まとめて流さず個別に見る
SLVRBULLETのみSeleniumではなくJSON APIなので、Chrome更新の影響を受けない
send_mail.py の通知が届くか確認
受け先(plus-creative.xyz / asp_data)の画面で前日データが入っていることを確認
毎日6:00に動き、CVがどの記事経由で発生したかをdata-organizing.comへ送ります。
asp_data_get とは作りが違い、こちらのほうが移設に強い構造になっているので、対応内容も変わります。
リポジトリを配置(PLUS-Company/asp_referrer)
.env_asp を600で配置。こちらにはSlack Webhook URLが含まれるため、発生額側とは中身が異なる
シェル(data-organizing_asp_referrer_get.sh)の確認
.env_asp はスクリプトと同階層から相対で読むため、この部分は無改修で動く
ただしPythonを python3 とPATH経由で呼んでいるため、cronのPATHにvenvを通すか、シェル側を書き換える必要がある
各スクリプトを最大3回リトライし、成否をSlackへ通知する構造はそのまま活かす
CSVダウンロード先の /var/www/html/referrer_get/ が23箇所にハードコードされているため、D案で決めたパスへ置換
15本を1本ずつ手動実行して確認
全件終了後に呼ばれる api_unsettled.php(未確定の再集計)が叩けることを確認
受け先(data-organizing.com)でCV行が入っていることを確認
cronは対話シェルと違い環境変数をほとんど引き継ぎません。
現行のcrontabにある環境変数のうち、新環境で必要なものと不要になるものを仕分ける必要があります。
crontabに設定する環境変数
MAILTO(エラー検知の生命線)
PYTHONIOENCODING=utf-8
LANG=ja_JP.UTF-8
PATH(venvを通す。referrer側のシェルがPATH依存のため必須)
DISPLAY と XAUTHORITY は削除する。 Xvfbを使っておらず、新ヘッドレスでは不要
毎日02:00の reboot は引き継がない。 現行機は稼働134日で、このcronは少なくとも直近134日実行されていません。メモリを2GBにする以上、reboot前提の運用を持ち込む理由がありません
並行稼働のあいだは実行時刻を現行とずらす(例: 発生額10:44、リファラー7:00)。同じASPアカウントへ同時刻に2台からログインすると、同時ログイン制限で片方が弾かれます
初回の自動実行に立ち会い、cron経由でも手動実行と同じ結果になることを確認
「スクリプトが動いた」ことと「正しいデータが入った」ことは別です。
受け先には重複判定があるため二重登録にはなりませんが、後から実行した側で上書きされるので、新サーバーの結果が正しいことを毎日見る必要があります。
1〜2週間、新旧を並行させて登録結果を突き合わせる
突合の観点
発生額: ASP別・アカウント別の件数と報酬額が一致するか
リファラー: CV件数と参照元URLが取れているか
報酬が空欄になっているレコードがないか
手動での再実行時は対象日が常に前日固定である点に注意する。過去日を埋めたい場合は現状スクリプトに日付引数がないため、Pythonを直接触る必要がある
連続7日以上一致したら切替判断
Claude Code
現在ASPの日次取得を動かしているサーバーは個人契約のConoHa VPSです。これをPLUS社名義の契約へ移すための指示書をまとめました。現行サーバーと両リポジトリ(asp_data_get / asp_referrer)を2026-08-18時点で実測し、その値を根拠にしています。
要点は3つです。第一に、現行機の名義変更ではなくPLUS社名義での新規契約をお願いします。現行機には本件と無関係な個人用の資産が同居しているためです。第二に、移すのはスクリプトと実行環境だけで、データベースは受け先2サイト(Xserver側)にあるためデータ移行は発生しません。第三に、スクリプトの改修は必須です。現行はChrome 86(2020年10月)とSelenium 3系で固定されており、新しいサーバーに入るChromeとは組み合わせられないためです。
以下が指示書の本文です。契約仕様、PLUS社側で用意していただくもの、こちらで進める準備、確認していただきたい点を分けて記載しています。
対象: ASP発生額取得(asp_data_get)とリファラー取得(asp_referrer)を動かしているサーバー1台
現状: 上記2系統は個人契約のConoHa VPS(160.251.6.246)上で稼働しています。これをPLUS社名義で契約したサーバーへ移し、契約・支払い・権限をPLUS社側に一本化することが目的です。
調査日: 2026-08-18(現行サーバーおよび両リポジトリの実測に基づく)
| 項目 | 指定値 | 理由 |
|---|---|---|
| サービス | ConoHa VPS | 現行と同一事業者。ネットワーク挙動・OSイメージの差異による移行事故を避けられる |
| プラン | 2GBプラン(3コア / メモリ2GB / SSD 100GB) | 現行は1GBプラン。実測でスワップを537MiB使用しており物理メモリが逼迫している。Chromeを毎日十数回起動する用途では2GBが妥当 |
| OS | Ubuntu 24.04 LTS(64bit) | Google Chromeの公式リポジトリが使え、更新が安定する。サポート期限2029年4月。ConoHaでは現行のCentOS 8はすでに選択できない |
| リージョン | 東京 | ASP各社・受け先サイトとも国内 |
| 追加ストレージ | 不要 | 現行機のディスク使用量42GBは大半が本件と無関係な個人データ。本件のスクリプト本体は実測4.2MB。取得済みCSVの蓄積分は権限の都合で計測できていないが、100GBに対して余裕がある |
| 自動バックアップ | 任意(推奨: 付ける) | 月額数百円。設定ミス時の巻き戻しが容易になる |
料金の目安(2026-08-18時点・ConoHa公式サイト記載・税込)
| プラン | 時間課金(月額上限) | まとめトク1ヶ月 | まとめトク36ヶ月 |
|---|---|---|---|
| 1GB(現行相当) | 1,065円 | 763円 | 450円 |
| 2GB(推奨) | 2,033円 | 793円 | 632円 |
| 4GB | 3,608円 | 1,380円 | 1,150円 |
比較のためXserver VPSも確認しましたが、2GBプランは新規受付を停止中で、4GBプランは月額4,400円(12ヶ月契約で3,600円)とConoHaより高くなります。既存のXserver契約とまとめたい事情がなければConoHaを推奨します。
plus とします。上記を受領した時点から構築作業に着手できます。
2026-08-18にサーバーへ接続して取得した実測値です。
| 項目 | 実測値 |
|---|---|
| OS | CentOS Linux 8.2.2004(kernel 4.18.0-193) |
| CPU | Intel Xeon Gold 6230 / 2 vCPU |
| メモリ | 818MiB(うちスワップ537MiB使用中) |
| ディスク | 99GB中42GB使用(44%)。うち本件関連は約5GB以下 |
| 稼働時間 | 134日 |
| Python | 3.6.8 |
| Selenium | 3.141.0 |
| chromedriver-binary | 86.0.4240.22.0 |
| Google Chrome | 86.0.4240.75(2020年10月リリース) |
| ChromeDriver | 86.0.4240.22 |
| pandas / numpy / requests | 1.1.4 / 1.19.4 / 2.27.1 |
| Xvfb | 未インストール(DISPLAY=:0 は設定されているが実際はヘッドレス動作) |
| スクリプト設置場所 | /var/www/html/asp_data_get/ と /var/www/html/asp_referrer/ |
補足が2点あります。
新サーバーではChromeが最新版(更新され続けるもの)になるため、Chrome 86に固定された現行コードはそのままでは動きません。両リポジトリ(PLUS-Company/asp_data_get、PLUS-Company/asp_referrer)の全ソースを実測して洗い出した改修項目です。
| # | 内容 | 実測件数 | 対応 |
|---|---|---|---|
| 1 | import chromedriver_binary(ドライバをChrome 86に固定) |
27ファイル | 削除。Selenium 4.6以降は同梱のSelenium Managerが対応ドライバを自動取得する |
| 2 | find_element_by_css_selector などの旧API |
228箇所 | find_element(By.CSS_SELECTOR, ...) 形式へ機械置換。Selenium 4.3で完全に削除されたAPIのため、放置すると全スクリプトが起動直後に停止する |
| 3 | DesiredCapabilities のimport |
5ファイル | 削除(Selenium 4で廃止) |
| 4 | ヘッドレス指定 --headless |
28箇所 | --headless=new と明示する。Chrome 132で旧ヘッドレスは削除され、--headless は自動的に新ヘッドレスとして動くため起動エラーにはならない。ただし実装そのものが別物になるため、CSVダウンロードとDOM取得の挙動を1本ずつ検証する必要がある |
| 5 | /var/www/html/... の絶対パス直書き |
50箇所以上 | 新サーバーの設置パスへ置換。CSVのダウンロード先指定(download.default_directory)を含むため、取りこぼすと取得が無音で失敗する |
| 6 | /usr/bin/python3 の直書き(発生額側の実行シェル) |
1ファイル16箇所 | 仮想環境(venv)のPythonを指すよう変更。リファラー側のシェルはPATH上のpython3を呼ぶため、こちらはPATH設定で対応する |
| 7 | Python 3.6 → 3.12 に伴う依存更新 | pandas利用12ファイル | pandas 2系・requests最新系へ更新。あわせて動作確認 |
改修そのものは大部分が機械的な置換ですが、ASP 8社ぶんのログイン動線を1本ずつ実行して確認する工程が必要です。ASP側の画面変更や、Chromeが新しくなったことによる挙動差はここでしか検出できません。取得スクリプトは発生額17本・リファラー15本の計32本あります。
契約を待たずに着手できるものと、契約後にしかできないものを分けています。
契約前(着手可能)
契約後
移すのはスクリプトと実行環境だけで、データベースは受け先2サイト(Xserver側)にあります。したがってデータ移行は発生せず、切り替えは「どちらのサーバーのcronを動かすか」を切り替えるだけです。
ただし並行稼働には条件があります。
切り替え完了後、現行サーバー上のASP関連ディレクトリとcronは停止・削除します。現行サーバー(個人契約)自体は他の用途があるため解約はしません。
【2026-10-08 全ASP移管セット・移行ガイドの整備】
新サーバーはまだ未契約です。契約後にすぐ再開できるよう、全ASPを対象としてソース・共通処理・依存・設定例・起動対象・移行手順をまとめました。中田さんから「契約が終わったらこのセットを使う」方針をいただいています。
■ 契約後に使う保管物
全ASP移管セットZIP(75ファイル):
https://nakata.studio/file_uploader/download.php?id=24
移行ガイド(概要と手順画面から上のZIPを取得可能):
https://nakata.studio/support_guide_hub/view.php?id=7
担当者さんへお渡し済みの契約ガイド:
https://plus-creative.xyz/nakata/asp_server_guide/
■ 収録対象
11 ASP: A8、afb、ACCESSTRADE、Felmat、JANet、Lacoco、TG Affiliate、SLVRBULLET、GLADONE、NAHATO、ORGANICGROUP。
日次取得20本、リファラー取得19本、共通処理、Selenium/requests/pandas依存、認証実値が空の.env例、39本の実行対象一覧、元の起動シェル、検証記録、START_HERE/ASP_INVENTORY/MIGRATION_PLANを収録。秘密鍵・認証実値・本番DBは含めていません。
一度A8だけを全体移管セットとしてまとめてしまった範囲誤りを訂正しました。旧31ファイル版(id23)はA8限定の旧版で、全体移管には使用しません。
■ 今回の検証
・旧サーバーの取得ソース39本と収録対象のファイル名が一致。
・全Python/シェル構文、共通モジュール参照、環境設定キー、SHA256を点検。
・A8既存5組のMac実取得は日次/リファラー合計一致。本番API呼出し0。詳細はタスク#498。
・stormADを含むA8 12入口のオフライン試験成功。stormAD実取得は未実施。
・アップロードZIPはダウンロードした全バイトが一致。ガイド本文・リンクを読み戻し、既存の回答と閲覧進捗を維持。PC/スマホ幅の概要表示も点検。
■ 契約後の再開手順
1. IPと接続鍵を安全な経路で受領。
2. 実行ユーザーの旧cron、全ASPの有効/停止アカウント、通知・メール・集計処理と実行順を確定。
3. 新UbuntuへPython/Chrome/venvと全ASPソースを配置。実値設定は安全に移す。
4. 他ASPは素のソースに本番送信があるため、送信なし入口を先に整備・検証。そのうえで全有効ASPを実取得し、管理画面の対象日・金額・件数と照合。
5. cron相当試験と原則7日の新旧照合(旧側のみ本番送信、新側は送信なし)。中田さん承認後に旧取得処理を停止して新側へ切替、受信保存と重複なしを読み戻す。
TG Affiliateリファラーは保存版・旧サーバーともソースがなく、必要性を移行前に決定します。実行ユーザーの旧cronや一部権限不足ファイルは再開時に読みます。全ASPの新Ubuntu実取得・本番切替は未実施です。今回、旧ソース・旧cron・本番DBは変更していません。
ローカル保管先:
/Users/nakatafumito/Workspace/20261008/plus-all-asp-migration/kit/
月次アーカイブ:
https://github.com/nakata-studio/202610/tree/main/20261008/plus-all-asp-migration