Ubuntu16 でCronを使ってみる

Ubuntu16 でCronを使ってみる

定期的にプログラムを実行する仕組みを
Cronで行ってみる

参考

Ubuntuでのcronの使い方

まず、確認用の実行プログラムを作る

ファイル名
test.sh

内容

#!/bin/bash

cd /home/userA/test/
ls >> log01.txt

権限を設定
$ chmod 755 test.sh

動作を確認
/bin/bash test.sh

Cronのファイルを複写する
cron_01というファイル名でコピーしています。

$ sudo cp /etc/crontab /etc/cron.d/cron_01

ファイルを編集する

$ sudo vim /etc/cron.d/cron_01
/

スケジュールを追加する(1分ごとに起動)
*/1 * * * *   ubuntu /bin/bash /home/userA/test/test.sh

cronの再起動を行います。(既に起動済の場合は不要)


sudo service cron restart

ファイル
log01.txt
が、追加されているか確認する

削除する場合は
/etc/cron.d/cron_01
を、編集(コメントアウト、削除)

Pythonプログラムを起動する場合

起動するスクリプトを変更
test.sh

#!/bin/bash

source /home/user/env/bin/activate
cd /home/user/test
python test.py
deactivate

test.pyの例
(フォルダーに時間指定のファイル名を出力する)

import time
import datetime
def main():
    html='logdata'
    now = datetime.datetime.now()
    fname = now.strftime('%Y%m%d%H%M%S' + '_01.txt')  # => '2019-08-02 02:20:43'
    with open("log/" + fname, "w") as f:
        f.write(html)
main()

動作確認を行っておくコマンドラインから

/bin/bash test.sh

動作確認ができたら
/etc/cron.d/cron_01
を、編集し、起動するようにする