在 Ubuntu 里,“trigger(触发器)”通常不是某一种固定文件,而是根据使用场景不同,写法不一样。下面我按最常见的几种情况给你示例,你对照自己的需求选。
sudo nano /usr/local/bin/my-script.sh
内容:
#!/bin/bash
echo "$(date) trigger run" >> /var/log/my-trigger.log
赋予执行权限:
sudo chmod +x /usr/local/bin/my-script.sh
sudo nano /etc/systemd/system/my-trigger.service
[Unit]
Description=My Trigger Script
[Service]
Type=oneshot
ExecStart=/usr/local/bin/my-script.sh
sudo nano /etc/systemd/system/my-trigger.timer
定时触发(每天 3 点)
[Unit]
Description=Run my script daily
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
启用:
sudo systemctl enable --now my-trigger.timer
查看:
systemctl list-timers
sudo apt install inotify-tools
#!/bin/bash
inotifywait -m /data -e modify |
while read path action file; do
/usr/local/bin/my-script.sh
done
sudo nano /etc/udev/rules.d/99-usb-trigger.rules
ACTION=="add", SUBSYSTEM=="usb", RUN+="/usr/local/bin/my-script.sh"
重新加载:
sudo udevadm control --reload
crontab -e
0 3 * * * /usr/local/bin/my-script.sh
我可以直接帮你写完整可运行的一套文件。