在Ubuntu中,你可以使用systemd或cron来实现定时任务。要实现并发执行,你需要创建多个独立的定时任务,它们可以同时运行而不会相互干扰。
systemd实现并发定时任务systemd服务文件。例如,创建一个名为my-task.service的文件:[Unit]
Description=My concurrent task
[Service]
Type=simple
ExecStart=/path/to/your/script.sh
将此文件保存到/etc/systemd/system/目录下。
为新创建的服务创建一个定时器文件,例如my-task.timer:
[Unit]
Description=Run my-task.service every hour
[Timer]
OnCalendar=*-*-* *:00:00
Persistent=true
Unit=my-task.service
[Install]
WantedBy=timers.target
将此文件保存到/etc/systemd/system/目录下。
启用并启动定时器:
sudo systemctl enable --now my-task.timer
现在,你的任务将每小时运行一次。如果你需要更多的并发任务,只需创建更多的服务文件(例如my-task2.service,my-task3.service等),并为每个任务创建相应的定时器文件(例如my-task2.timer,my-task3.timer等)。
cron实现并发定时任务打开终端,输入crontab -e以编辑当前用户的cron配置。
为每个并发任务添加一行,指定任务的执行时间和命令。例如,如果你想让两个任务分别每小时的0分和30分运行,你可以添加以下行:
30 * * * * /path/to/your/script1.sh
0 * * * * /path/to/your/script2.sh
现在,你的任务将按照指定的时间运行,并且可以同时运行而不会相互干扰。