Cron设置自动脚本(重启,发送邮件)

继续折腾服务器,这次记录一下利用cron进行计划任务

一般来说ubuntu等linux系统均已自带crontab服务,但是以防万一,如果需要的话

首先安装crontab

sudo apt-get install cron

开启服务,并加入自启

sudo systemctl enable cron
sudo systemctl start cron

然后配置计划任务,首次运行会询问你使用什么编辑器

crontab -e

在编辑器中使用以下格式进行编辑,可以参考这个网页的时间设定格式

https://tool.lu/crontab/

设定好前面的格式后,后面的部分就是你想计划运行的命令,这里我用一个自己写的自动获取服务器信息然后发送邮件的方式来举例(其中的文件位置和名称可以自行设定)

#!/bin/bash
email_date=$(date "+%Y-%m-%d %H:%M:%S") #获取时间
echo "email_date : "$email_date  >> /root/cronlog/daily.txt #将时间写入文件
ps -A >> /root/cronlog/daily.txt #获取运行进程
free -m >> /root/cronlog/daily.txt #获取内存信息
df -h >> /root/cronlog/daily.txt #获取空间信息

echo | mail -s "daily check" -a "From:from@example.com" to@example.com < /root/cronlog/daily.txt
# 将导出的日志文件发送到服务器,主题为“”中的
rm -rf /root/cronlog/daily.txt
# 删除日志文件
date >> /root/cronlog/cronlog 记录完成脚本的时间

然后在crontab编辑中输入(每24小时执行一次)

0 */24 * * * * /root/cronlog/daily.sh

或(每天0点执行)

0 0 * * * * /root/cronlog/daily.sh

 

发表回复