やりたいこと

  • 毎日一回、自動でGitHubへpushしてくれたらデータが消える心配がなくて安心だなと思いました。
  • 公開可否は、draftプロパティで管理することを前提に、Xserverへのデプロイまで自動でやるようにします。

具体的方法

  • cronの設定
    • ( macOS では、crontab コマンドを用いて cron を設定できる )
# 毎日20:00にquartzとGitHubの同期(Xserverへのデプロイ)を行う
$ crontab -l
0 20 * * * ~/theasthai/quartz/quartz_sync.sh >> ~/theasthai/quartz/quartz_sync.log 2>&1
 
# 編集モード
$ crontab -e
  • quartzを同期させるシェルスクリプト
$ cat quartz_sync.sh
#!/bin/zsh
 
# nvmの初期化
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
 
cd ~/theasthai/quartz/
npx quartz sync
  • スリープ状態でcronが動かない欠点を補うために、pmsetコマンドを使ってスリープ状態を解除(電源が入ってなかったら入れる)。
    • (pmset コマンドを使うと、Mac の電源オン・オフを管理できる )
# pmsetで毎日19:59にスリープ解除
$ sudo pmset repeat wakeorpoweron MTWRFSU 19:59:00
 
# 登録したスケジュールを確認
$ pmset -g sched
Repeating power events:
  wakepoweron at 7:59PM every day
Scheduled power events:
 [0]  wake at 03/02/2025 07:55:00 by 'com.apple.alarm.user-invisible-com.apple.osanalytics.hardhighengagementtimer'