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

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

coldplay.xixi
リリース: 2020-11-16 17:12:06
転載
2651 人が閲覧しました

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 までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート