書いておかないと忘れるので、私がやった手順をここに記する。
はじめに
やりたいこと
Google Cloud Platform (GCP) の無料枠内で仮想マシンを作って、定期的に指定したウェブサイトのスクリーンショットを撮って Discord に送信したい。
GCP の無料仮想マシンは、低スペックで使ってみるまでは大丈夫か不安だったが、使ってみたら意外と普通に使えたので驚いた。公式サイトに書いてある通りの設定で VMインスタンスを作れば無料で使える。
デスクトップを搭載していないコンソールのサーバでも、ブラウザを使ってスクリーンショットが撮れた。
前提
- GCP に仮想マシン (VMインスタンス) があること
- マシンタイプ: e2-micro
- ブートディスク: Ubuntu 20.04 LTS


環境構築
Chrome をインストール
Chrome がインストールされているか確認
apt list --installed google*
Chrome のリポジトリを追加
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
正常にリポジトリが追加されたか確認
ls -l /etc/apt/sources.list.d
リポジトリの鍵情報を追加
sudo wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
パッケージ一覧の更新(リポジトリを追加した後は必ず実行すること)
sudo apt update
Chrome をインストール
sudo apt-get install google-chrome-stable
Chrome がインストールされたか再確認
apt list --installed google*
Python をインストール
Python をインストール
sudo apt install python3
sudo apt install python3-pip
Python のパッケージをインストール
pip install selenium
pip install discordwebhook
ChromeDriver をインストール
まず、インストールした Chrome のバージョンを調べる。
google-chrome --version
調べたバージョンと同じか1つ大きいバージョンの ChromeDriver をインストール
pip install chromedriver_binary==94.0.4606.61.0
ここまでの作業で、ウェブサイトのスクリーンショットを撮って Discord に送ることができる。
定期実行の設定
ここからは、指定した Python を定期的に実行する設定をしていく。
インストールした Python のパスを調べる。
which python3
実行したい Pythonファイルのパスを調べる。
readlink -f example_1.py
crontab (クロンタブ) エディタを開く。
crontab -e
crontab に定期実行する設定を書き込む。
0 8 * * * /usr/bin/python3 /home/user/example_1.py
cron のサービス状態を確認
service cron status
cron を開始
service cron start
cron を再起動
sudo /etc/init.d/cron restart
サーバ日時の設定
GCP の仮想マシンは海外にあるので、タイムゾーンを日本標準時 (JST) に変更
ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
仮想マシンのタイムゾーンを確認
date
おわりに
今回は流儀に反して画像が少なめになっちゃいました。ごめんなさい。
とりあえず、私が使ったコマンドと説明を書いただけです。
やっぱコマンドは慣れませんね。覚えるのも大変ですし。