Всем привет, я Сяойи
Сегодняшняя статья основана на небольшой рабочей хитрости, в основном связанной с автоматизацией повседневных задач.
Если вам нужно выполнять какую-то повторяющуюся работу каждый день, например, создавать отчет, статистику, отправлять электронные письма и т. д.
Затем вы можете полностью передать эту задачу компьютеру и позволить ему делать это автоматически каждый день,И вам просто нужно спокойно открыть чашку термоса и тихо заварить чашку лайчи.
Сегодня я буду в основном использовать службу 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