• [Linux]如何配置定期任務腳本,並將執行結果寄到外部郵箱? (上)


    在Linux系統中,cron是用於定期執行任務的服務,其中crontab是配置定期任務的管理命令。關於定期執行任務,cron提供系統級和用戶級的配置服務,說明如下:

    1.系統級:常用於備份系統數據或是清除系統緩存文件等週期性任務。系統級的最小運作週期是以小時為單位,可將任務腳本置於/etc/cron.hourly路徑中定時執行。另外,相較於用戶級,系統級可避免某個應執行任務被錯過。

    2.用戶級:在Linux的不同用戶可依自行需求,設置週期性任務,如每天上午8:00啟動MySQL服務器並於晚上12:00關閉MySQL服務器,或者每三個小時執行一次Python程序。用戶級的最小運作週期是可達到分鐘為單位。

    本文以用戶級的配置服務,配置定時執行的任務腳本(.sh),並將腳本結果輸出為文件(.txt),並寄到個人的外部郵箱,以完成自動化作業。其中,涉及到的服務和工具,除了上述提及的cron配置工作外,尚須基礎了解shell script撰寫、執行腳本的權限設定和mailx的配置工作。每個主題依序說明如下。

    a. cron配置工作

    crontab命令用於配置定期任務,例如 crontab -l 條列已配置的定期任務; crontab -e 編輯定期任務(即設定多久執行一次任務) ; 而管理者可用crontab -u  去管理所有用戶已設置的定期任務; crontab -r 刪除已配置的定期任務

    在說明crontab -e是如何編輯定期任務之前,須先了解其定義週期的語法。可藉由vim /etc/crontab中的範例了解週期定義的語法。舉例如下:

    0 2 * * * command  => 每天2:00執行一次指令

    0 2 10 * * command  => 每月10號的2:00執行一次指令

    0 2 * * 5 command  => 每周五2:00執行一次指令

    */5 * * * * command  => 每隔五分鐘執行一次指令

     本文範例是以每兩分鐘執行一次test.sh腳本來進行,如下圖,同時當配置和執行時,可利用crontab -l來查看是否已設置好,或由 /var/spool/cron路徑中查閱是否已有任務。

    b. 定義腳本

    利用shell script來撰寫執行腳本,腳本內容大致為,列印出當下執行的日期資訊和6~10的數字,同時資料存成data.txt,並將該data.txt分別寄到gmail和139的郵箱,如下兩圖。 

     

    本文最後提供一個好用的腳本線上工具,可作為腳本的初步測試用,相信很多程序員都用過。

    下篇文章再接續了解 mailx的用法,以及該過程可能會遇到的坑與解法。

  • 相关阅读:
    JPA Criteria 条件查询
    R语言survival包clogit函数构建条件logistic回归模型、使用summary函数查看模型汇总统计信息
    基于Res-DNN的端到端MIMO系统信号检测算法
    JVM(十) —— 运行时数据区之方法区(一)
    蓝桥杯STM32G431RBT6实现按键的单击、双击、长按的识别
    【Java初阶】面向对象三大特性之多态
    如何在代码层面提高CPU分支预测效率
    10分钟部署一个别人可以访问的在线网站
    linux-ARM下的数据库管理工具的安装使用(dbeaver)
    Python动态建模(2)
  • 原文地址:https://blog.csdn.net/weixin_42008031/article/details/127741704