Задачи синхронизации Python, трехэтапная автоматизация

Python

Всем привет, я Сяойи

Сегодняшняя статья основана на небольшой рабочей хитрости, в основном связанной с автоматизацией повседневных задач.

Если вам нужно выполнять какую-то повторяющуюся работу каждый день, например, создавать отчет, статистику, отправлять электронные письма и т. д.

Затем вы можете полностью передать эту задачу компьютеру и позволить ему делать это автоматически каждый день,И вам просто нужно спокойно открыть чашку термоса и тихо заварить чашку лайчи.


Сегодня я буду в основном использовать службу cron под Linux, хорошо, начнем напрямую



1. Установите крон

Практически все дистрибутивы Linux поставляются с предустановленным по умолчанию инструментом cron.

Даже если cron не предустановлен, его очень просто установить вручную с помощью нескольких простых команд.

# 检查是否已经预装了cron
service cron status

Установить и запустить службу

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

2. Проверка установки

После завершения установки проверьте, прошла ли установка успешно, а также используйте команду состояния для просмотра

Появится следующее приглашение, указывающее на то, что установка прошла успешно:

在这里插入图片描述

Кроме того, под ubuntu может появиться такая подсказка:

在这里插入图片描述

Это также означает, что его можно использовать в обычном режиме.


3. использование крона

Есть несколько простых способов использования cron, о которых нужно узнать, и позже будет подробно рассказано о том, как его использовать.

первый,Список заданий cron, запланированных текущим пользователем:

crontab -l

Просмотр заданий cron других пользователей:

crontab –l –u username

Удалить запланированное задание cron:

crontab –r

4. Запланируйте расписание crontab

Сначала введите следующую командуДобавляйте или обновляйте задачи в crontab

在这里插入图片描述

При первом входе вам будет предложено выбрать редактор, который выбирается в соответствии с вашими привычками.

После выбора вы попадете в такой интерфейс:

在这里插入图片描述

Студенты, которые использовали vim, должны быть знакомы с этим интерфейсом, похожими операциями:Нажмите 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

Это наиболее часто используемые. Для получения дополнительных вариантов использования вы также можете обратиться к этой ссылке:linux.51 one piece.com/search/cron…


Команда в приведенном выше случае представляет конкретную задачу, которую необходимо выполнить, например печать абзаца:

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 на локальный
  • Сводная статистика по последним локальным данным
  • Статистические результаты сохраняются в сводке базы данных
  • Уведомление по электронной почте

Приблизительный псевдокод описанного выше процесса выглядит следующим образом:

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 автоматически обновит список задач в режиме реального времени.Если вас не беспокоит, вы можете перезапустить службу cron через команду перезапуска [см. начало статьи]

在这里插入图片描述

Вот небольшое предложение, все пути заполнены абсолютными путями


③ Мониторинг эффекта

Если с кодом Python проблем нет, задача будет выполняться периодически.

Здесь предполагается, что вы можете запустить свою собственную команду только в консоли и записать ее в список задач cron, когда нет проблем.

Окончательный скриншот временной задачи основного выглядит следующим образом:

Внизу — загрузка файла по ftp, вверху — сводная статистика данных.

在这里插入图片描述



скажи что-нибудь не по теме

Если вы говорите, что в вашей обычной работе много повторяющихся задач, таких как сбор ежедневных показателей, сбор статистики, автоматическая переадресация почты и т.д.

Как только вы можете настроить логику этих задач с помощью скриптов, задачи автоматизации также могут достичь этого, самое большее, вам нужно каждый день обращать внимание на электронную почту, чтобы увидеть, есть ли какая-либо ошибка.


Нелегко быть оригинальным, пожалуйста, лайкни

Первый выпуск статьи: публичный аккаунт [Zhiqiu Xiaoyi]

Синхронизация статей: Nuggets, Jianshu, csdn


Оригинальная ссылка:Популяризируйте рабочий навык, реализуйте автоматизацию Python за три шага