Notes
ニューヨークタイムスの一面を毎朝無料で読む
以前の公開場所からの移転として残します。 macOSでの自動実行は、今やcronではなく、launchdが主流になりました。 ニュースレター配信メールでは取り扱いました。 → macOSで定期実行するのはcronからlaunchdへ
macOS版
BSD系dateを使います。
#!/bin/sh
cd ~/Downloads/NewYorkTimes || exit 1
URLDAY=$(date -v-1d '+%Y/%m/%d')
FILENAME=$(date -v-1d '+%F').pdf
curl -s -o "$FILENAME" "https://static01.nyt.com/images/$URLDAY/nytfrontpage/scan.pdf"
if [ ! -s "$FILENAME" ]; then
echo "$(date): Failed to download $FILENAME" >> ~/Downloads/NewYorkTimes/error.log
exit 1
fi
open "$FILENAME"
exit 0
macOSのみ:スリープ解除 スリープ中はcronが動きません。システム環境設定で事前にスリープ解除を予約します。
sudo pmset repeat wakeorpoweron MTWRFSU 08:59:00
毎日8時59分に起動し、9時のcronに間に合わせます。解除するには以下です。
sudo pmset repeat cancel
macOSのみ:フルディスクアクセスの許可
システム設定 → プライバシーとセキュリティ → フルディスクアクセスに/usr/sbin/cronを追加してください。これがないとcronが動きません。
Linux版
GNU系dateを使います。
#!/bin/sh
cd ~/Downloads/NewYorkTimes || exit 1
URLDAY=$(date -d 'yesterday' '+%Y/%m/%d')
FILENAME=$(date -d 'yesterday' '+%F').pdf
curl -s -o "$FILENAME" "https://static01.nyt.com/images/$URLDAY/nytfrontpage/scan.pdf"
if [ ! -s "$FILENAME" ]; then
echo "$(date): Failed to download $FILENAME" >> ~/Downloads/NewYorkTimes/error.log
exit 1
fi
# デスクトップ環境がある場合のみコメントアウトを外して有効にする
# xdg-open "$FILENAME"
exit 0
共通設定
実行権の付与(共通)
shchmod +x get_nyt.sh
crontab設定(共通)
Crontab実行後は、viエディタと同じコマンドで操作します。 保存して終了は、次のように、ESC押下後、コロンを押下し、wqと打ちます。 ESC→ :wq
編集するコマンド
crontab -e
cronの中身
0 9 * * * ~/Downloads/NewYorkTimes/get_nyt.sh
解除するには以下です。
sudo pmset repeat cancel