Linux Trigger(通常指的是Linux系统中的定时任务,也称为cron job)在脚本编写中有着广泛的应用。通过使用cron job,你可以自动化执行各种任务,如定期备份文件、清理日志、发送报告等。以下是一些常见的应用场景和示例:
你可以编写一个脚本来备份特定的文件或目录,并使用cron job定期运行这个脚本。
示例脚本:backup.sh
#!/bin/bash
BACKUP_DIR="/path/to/backup"
SOURCE_DIR="/path/to/source"
DATE=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="$BACKUP_DIR/backup_$DATE.tar.gz"
tar -czvf $BACKUP_FILE $SOURCE_DIR
echo "Backup completed: $BACKUP_FILE"
设置cron job:
crontab -e
添加以下行以每天凌晨2点运行备份脚本:
0 2 * * * /path/to/backup.sh
定期清理旧的日志文件可以节省磁盘空间。
示例脚本:clean_logs.sh
#!/bin/bash
LOG_DIR="/var/log"
DAYS_TO_KEEP=7
find $LOG_DIR -type f -name "*.log" -mtime +$DAYS_TO_KEEP -exec rm -f {} \;
echo "Logs older than $DAYS_TO_KEEP days have been cleaned."
设置cron job:
crontab -e
添加以下行以每周一凌晨3点运行清理脚本:
0 3 * * 1 /path/to/clean_logs.sh
你可以编写一个脚本来生成报告并通过电子邮件发送。
示例脚本:send_report.sh
#!/bin/bash
REPORT_FILE="/path/to/report.csv"
EMAIL="your_email@example.com"
# 生成报告的命令(示例)
echo "Report data" > $REPORT_FILE
# 发送邮件
mail -s "Weekly Report" $EMAIL < $REPORT_FILE
echo "Report sent successfully."
设置cron job:
crontab -e
添加以下行以每周五下午5点运行发送报告脚本:
0 17 * * 5 /path/to/send_report.sh
编写脚本来监控系统状态,并在检测到异常时发送警报。
示例脚本:monitor_system.sh
#!/bin/bash
CPU_USAGE=$(top -bn1 | grep load | awk '{printf("%.2f"), $(NF-2)}')
MEMORY_USAGE=$(free | grep Mem | awk '{printf("%.2f"), $3/$2 * 100.0}')
if (( $(echo "$CPU_USAGE > 80.0" | bc) )); then
echo "High CPU usage detected: $CPU_USAGE%" | mail -s "System Alert" your_email@example.com
fi
if (( $(echo "$MEMORY_USAGE > 80.0" | bc) )); then
echo "High memory usage detected: $MEMORY_USAGE%" | mail -s "System Alert" your_email@example.com
fi
设置cron job:
crontab -e
添加以下行以每分钟运行监控脚本:
* * * * * /path/to/monitor_system.sh
通过使用cron job,你可以自动化执行各种任务,提高工作效率并减少人为错误。编写脚本时,确保脚本具有可执行权限,并定期检查和测试脚本以确保其正常运行。