Ubuntu Trigger是一款第三方任务调度工具,支持基于时间、系统事件的自动化任务执行,适合需要简化配置的用户。
首先更新系统包列表并安装ubuntu-trigger:
sudo apt update
sudo apt install ubuntu-trigger
ubuntu-trigger create --name "DailyBackup" --command "/path/to/backup.sh" --every "0 2 * * *"
ubuntu-trigger create --name "StartupCleanup" --command "/path/to/cleanup.sh" --on "startup"
ubuntu-trigger list
ubuntu-trigger edit MyTrigger
ubuntu-trigger delete MyTrigger
检查特定触发器的执行情况:
ubuntu-trigger status MyTrigger
chmod +x /path/to/script.shstartup(启动)、shutdown(关机)、login(登录)等系统事件。Cron是Ubuntu默认的时间调度工具,适合周期性任务(如每日备份、日志清理)。
crontab -e
/home/user/backup.sh:0 3 * * * /home/user/backup.sh
(时间格式:分 时 日 月 星期 命令,*表示任意值)crontab -l
crontab -r
sudo crontab -e
0 4 * * * root /usr/bin/rm -rf /tmp/*
/var/log/syslog):grep CRON /var/log/syslog
systemd定时器是更现代的调度工具,支持基于时间、系统状态(如网络就绪)的触发,且能替代传统Cron。
sudo nano /etc/systemd/system/backup.service
内容示例:[Unit]
Description=Daily Backup Service
[Service]
ExecStart=/path/to/backup.sh
sudo nano /etc/systemd/system/backup.timer
内容示例:[Unit]
Description=Run Backup Daily
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable backup.timer
sudo systemctl start backup.timer
systemctl list-timers
systemctl status backup.service
inotify用于监控文件或目录的变化(如创建、修改、删除),触发相应操作(如备份、通知)。
sudo apt install inotify-tools
/path/to/watch目录,当文件修改时执行/path/to/script.sh:#!/bin/bash
inotifywait -m -r -e modify /path/to/watch | while read path action file; do
echo "File $file in $path was $action. Running script..."
/path/to/script.sh
done
chmod +x /path/to/script.sh
/path/to/script.sh
udev用于监控硬件设备事件(如USB插入、网卡启用),触发相应操作(如挂载设备、备份数据)。
xxxx、产品ID为yyyy的USB设备插入时,执行/path/to/backup.sh:sudo nano /etc/udev/rules.d/99-usb-backup.rules
内容示例:ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", ATTR{idProduct}=="yyyy", RUN+="/path/to/backup.sh"
sudo udevadm control --reload-rules
插入符合条件的USB设备,检查/path/to/backup.sh是否执行。