ホームページ  >  記事  >  バックエンド開発  >  Python のスケジュールされたタスク、自動化を実現する方法

Python のスケジュールされたタスク、自動化を実現する方法

coldplay.xixi
coldplay.xixi転載
2020-11-16 17:12:062625ブラウズ

Python チュートリアル コラムでは、自動化を実現する方法を紹介します。

Python のスケジュールされたタスク、自動化を実現する方法

1. cron のインストール

基本的にすべての Linux ディストリビューションには、デフォルトで cron ツールがプリインストールされています。

cron がプリインストールされていない場合でも、非常に簡単です。いくつかの簡単なコマンドを実行することで手動でインストールできます

# 检查是否已经预装了cron
service cron status复制代码

サービスをインストールして開始します

安装:apt-get install cron
启动/停止/重启:service cron start/stop/restart
查询当前任务:crontab -l复制代码

2. インストールの確認

##インストール完了後、インストールが成功したかどうかをstatusコマンドで確認します

##以下のプロンプトが表示されれば、インストールは完了しています。成功しました:

Python のスケジュールされたタスク、自動化を実現する方法さらに、次のプロンプトが ubuntu で表示される場合があります:

Python のスケジュールされたタスク、自動化を実現する方法#これは、次の可能性があることも意味します。通常使用されます

##3. cron の使用法

cron には簡単な使い方がいくつかありますので、後で事例を使って詳しい使い方を紹介します

まず、

現在のユーザーによって計画されている cron ジョブをリストします:

crontab -l复制代码
他のユーザーの cron ジョブを表示します:
crontab –l –u username复制代码
スケジュールされた cron ジョブを削除します:

crontab –r复制代码
4. crontab プランのスケジュールを設定します

まず、次のコマンドを渡します

crontab でタスクを追加または更新します

次のようになります最初に入るときにエディタを選択するように求められますが、この選択はあなた自身の習慣に基づいています。 Python のスケジュールされたタスク、自動化を実現する方法

選択後、次のようなインターフェースに入ります:

vim を使用したことがある学生は、このインターフェースに精通しているはずです。同様の操作: Python のスケジュールされたタスク、自動化を実現する方法 A を押して編集を開始し、ESC を押して wq と入力し、保存して終了します。

重要な点は一番下の段落です:

m h dom mon dow commmand复制代码

これは実際には crontab スケジュールを使用しています。ジョブの概要、スケジュールされたタスクを設定するために使用できます。

具体的な構文は次のとおりです:

m h dom mon dow command
* * * * * command
- - - - - -
| | | | | |
| | | | | --- 预执行的命令
| | | | ----- 表示星期0~7(其中星期天可以用0或7表示)
| | | ------- 表示月份1~12
| | --------- 表示日期1~31
| ----------- 表示小时1~23(0表示0点)
------------- 表示分钟1~59 每分钟用*或者 */1表示复制代码
簡単なアプリケーション ケースをいくつか挙げます:

毎日 02:00 にタスクを実行します。

0 2 * * * command复制代码
  • 毎日 5:00 と 17:00 にタスクを実行します
0 5,17 * * * command复制代码
  • タスクを 10 分ごとに実行します
*/10 * * * * command复制代码
  • 特定の月の日曜日の 17:00 にタスクを実行します
0 17 * jan,may,aug sun command复制代码
    これらは最も一般的に使用されるものです。その他の使用例については、リンク http://linux を参照してください。 51yip .com/search/crontab
  • 上記の場合のコマンドは、段落の印刷 (
echo "Hello xiaoyi" >> /tmp/test.txt 
复制代码

) やこの段落の txt への出力 (##) など、実行する必要がある特定のタスクを示しています。 #

echo "Hello xiaoyi" >> /tmp/test.txt 
复制代码
または、Python スクリプトを実行する必要があります:

python demo.py filepath复制代码
後ろのファイルパスは、一部の学生が使用する可能性のある入力パラメータ args を表します。たとえば、次の場合は、次のように入力する必要があります。ファイルのダウンロード パス。

5. 実践的な戦闘

上記を理解したら、今日のハイライトを開始できます。

まず、毎日 FTP サーバーから最新のタスク データをダウンロードし、そのデータをローカル コンピューターにダウンロードして、Python を介してデータの概要統計を実行し、最後に結果をファイルに保存する必要があります。データベース中に特定のリンクが発生した場合、問題がある場合は警告メールが送信されます。

① Python スクリプト

まず、Python スクリプトは次の機能を実行する必要があります:

データベースから最新のデータ日付を取得します

ftp から最新データをローカルにダウンロード

    最新のローカル データに対して要約統計を実行
  • 統計結果はデー​​タベースの要約に保存されます
  • 電子メールnotification
  • 上記のプロセスの大まかな疑似コードは次のとおりです。
if __name__ == '__main__':    """获取最新数据日期"""
    latest_date = get_max_date()    # 以最新日期为名创建文件夹
    download_dir = os.path.join(sys.argv[1], latest_date)    if not os.path.exists(download_dir):
        os.makedirs(download_dir)        
    """从ftp中下载最新数据"""
    download_file(latest_date, download_dir)    """处理最新数据并保存"""
    process_data(latest_date, download_dir)复制代码
  • メール監視では、try catch 例外キャプチャを追加でき、例外が発生すると、メールが送信されます

    Python エディタでメールの内容を作成して送信しましたので、以下を参照してください: Python メール送信

    ② cron タスクの作成

    crontab を開き、次の内容を最後の行まで編集し、保存して終了します

    crontab はタスク リストをリアルタイムで自動的に更新します。よくわからない場合は、再起動コマンド [記事の冒頭を参照してください]

    ここに小さな提案があります。すべてのパスに絶対パスを入力してください。

    ③ 効果のモニタリングPython のスケジュールされたタスク、自動化を実現する方法

    Python コードに問題がなければ、タスクは定期的に実行されます。

    独自のコマンドをコンソールのみで実行し、問題がなければ cron タスク リストに書き込むことをお勧めします。

    Xiaoyi のスケジュールされたタスク操作の最後のスクリーンショットは次のとおりです:

    下は FTP ファイルのダウンロード、上はデータ概要統計です

    Python のスケジュールされたタスク、自動化を実現する方法

    関連する無料学習の推奨事項: Python チュートリアル(ビデオ)

    以上がPython のスケジュールされたタスク、自動化を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

  • 声明:
    この記事はjuejin.imで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。