当前位置:首页 > 行业动态 > 正文

linux 配置定时任务

在 Linux 中,可以使用 crontab 命令配置定时任务。首先打开终端,输入 crontab -e,然后按照指定格式编写任务。

在Linux上配置系统定时任务

Linux系统提供了一套强大的定时任务调度工具,可以方便地实现自动化的任务执行,本文将介绍如何在Linux上配置系统定时任务。

1、使用crontab命令

crontab是Linux系统中最常用的定时任务管理工具,可以用来设置周期性执行的任务,以下是如何使用crontab命令创建和管理定时任务的步骤:

1、1 安装crontab

大多数Linux发行版已经预装了crontab,如果没有安装,可以使用以下命令进行安装:

sudo aptget install cron

1、2 创建定时任务

使用crontab e命令打开当前用户的定时任务配置文件,然后添加一行表示定时任务的配置信息,配置信息的格式如下:

* * * * commandtobeexecuted

| | | | |
| | | | Day of week (0 7) (Sunday is both 0 and 7)
| | | Month (1 12)
| | Day of month (1 31)
| Hour (0 23)
Minute (0 59)

以下配置表示每天早上6点执行/home/user/backup.sh脚本:

0 6 * * * /home/user/backup.sh

1、3 保存并退出

编辑完成后,保存并退出编辑器,定时任务将自动生效。

1、4 查看定时任务列表

使用crontab l命令查看当前用户的定时任务列表:

crontab l

1、5 删除定时任务

使用crontab r命令删除当前用户的所有定时任务:

crontab r

或者使用crontab l命令查看定时任务列表,然后手动删除不需要的任务。

2、使用systemd timers命令

除了crontab之外,Linux还提供了systemd timers命令来管理定时任务,以下是如何使用systemd timers命令创建和管理定时任务的步骤:

2、1 安装systemd

大多数Linux发行版已经预装了systemd,如果没有安装,可以使用以下命令进行安装:

sudo aptget install systemd

2、2 创建定时任务单元文件

使用以下命令创建一个名为mytimer.timer的定时任务单元文件:

sudo nano /etc/systemd/system/mytimer.timer

在文件中添加以下内容:

[Unit]
Description=My Timer Example
Requires=networkonline.target firewalld.service myscript.service
After=networkonline.target firewalld.service myscript.service myotherscript.service
[Timer]
OnCalendar=*** 06:00:00
Persistent=true
[Install]
WantedBy=multiuser.target

Description表示定时任务的描述,Requires表示依赖的服务,After表示在哪些服务启动后执行定时任务,OnCalendar表示定时任务的执行时间,Persistent=true表示即使系统重启,定时任务也会继续执行,将该单元文件添加到多用户目标中。

2、3 创建定时任务服务文件和脚本文件

使用以下命令创建一个名为myscript.service的定时任务服务文件:

sudo nano /etc/systemd/system/myscript.service

在文件中添加以下内容:

[Unit]
Description=My Script Example Service
After=networkonline.target firewalld.service myotherscript.service mytimer.timer
[Service]
Type=simple User=root Group=root ExecStart=/usr/bin/myscript.sh Restart=onfailure RestartSec=5min TimeoutStopSec=infinity KillMode=process SendSIGKILL=no PropagateReload=no Watchdog=yes WatchdogSec=5min PIDFile=/run/myscript.pid PrivateTmp=false EnvironmentFile=/etc/sysconfig/myscript_env VariantOf=myotherscript.service [Install] WantedBy=multiuser.target mytimer.timer myotherscript.service networkonline.target firewalld.service myotherscript.service mytimer.timer systemdjournalflush.service systemdudevdtrigger.service systemdupdateutmprunlevel.service systemdtimesyncd.service systemdtmpfilessetupdev.service systemdjournaldautoreload.service systemdjournald.socket systemdjournalddevlogbuffer.socket systemdjournalddeferredcommit.socket systemdjournaldnotify.socket systemdjournaldremote.socket systemdjournaldsyslog.socket systemdjournald.service systemdremountfs.service systemdupdateutmp.service systemdhwdbupdate.service systemdlocaled.service systemdfirstboot.service udisks2.service upower.service wpa_supplicant.service networkmanager.service NetworkManager systemdrandomseed.service systemdreadaheadcollect.service systemdreadaheadrestored.service systemdusersessions.slice sysinit.target basic.target multiuser.target resolvconf.target remotefs.target ntpdate.target devsda1.device sysinit.target swapfile_enable_all_swaps_on_boot_complete_action_sysinit_early_start_services_and_then_wait_for_swaps_sysinit_early_start_services_and_then_wait_for_swaps sysinit.target localfs.target runlevel10kdb500ms localtime stop target sysinit target After=networkonline.target firewalld.service myotherscript.service mytimer.timer systemdjournalflush.service systemdudevdtrigger.service systemdupdateutmprunlevel.service systemdtimesyncd.service systemdtmpfilessetupdev.service systemdjournaldautoreload.service systemdjournald.socket systemdjournalddevlogbuffer.socket systemdjournalddeferredcommit
0