Ubuntu
在Linux系统中,计划任务一般是由 cron 承担,我们可以把 cron 设置为开机时自动启动。cron 启动后,它会读取它的所有配置文件(全局性配置文件 /etc/crontab ,以及每个用户的计划任务配置文件),然后 cron 会根据命令和执行时间来按时来调用度工作任务
cron 是一个 linux 下的定时执行工具,可以在无需人工干预的情况下运行作业。由于 cron 是 Linux 的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务
service cron start //启动服务
service cron stop //关闭服务
service cron restart //重启服务
service cron reload //重新载入配置
/etc/init.d 这个目录是所有服务的脚本,可以通过执行脚本并且加上参数,开启关闭或者重启对应的服务
cron可以让系统在指定的时间,去执行某个指定的工作,我们可以使用 crontab 指令来管理cron机制
crontab参数
crontab
-u 使用者名称
-l:可以列出crontab的内容
-r:可以移除crontab
-e:可以使用系统预设的编辑器,开启crontab
-i:可以移除crontab,会跳出系统信息让你再次确定是否移除crontab
定时任务时间
*/5 * * * * 每五分钟执行
0 * * * * 每小时执行
0 0 * * * 每天执行
0 0 * * 0 每周执行
0 0 1 * * 每月执行
0 0 1 1 * 每年执行
常用命令
重启cron:/etc/init.d/cron restart
查看cron:crontab -l
查看cron的状态(开启或关闭):service cron status
打开cron文件:crontab -e
查看cron日志:/var/log/syslog
crontab -l -u jp //列出用户jp的所有调度任务
crontab时间格式说明
minute(分):可以设置0-59分
hour(小时):可以设置0-23小时
day of month(日期):可以设置1-31号
month(月份):可以设置1-12月
day of week(星期):可以设置0-7星期几,其中0和7都代表星期天,也可以使用名称来表示星期天到星期一,例如sun表示星期天,mon表示星期一
"*" 代表取值范围内的数字
"/"代表"每"
"-"代表从某个数字到某个数字
","分开几个离散的数字
语句解释
find /usr/local/backups -mtime +10 -name “*.*” -exec rm -rf {} \;
将/usr/local/backups目录下所有10天前带”.”的文件删除
find:linux的查找命令,用户查找指定条件的文件
/usr/local/backups:想要进行清理的任意目录
-mtime:标准语句写法
+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
*.*:希望查找的数据类型,”.jpg”表示查找扩展名为jpg的所有文件,””表示查找所有文件,这个可以灵活运用,举一反三
-exec:固定写法
rm -rf:强制删除文件,包括目录
{} \; :固定写法,一对大括号+空格++;
步骤
- 新建脚本文件
touch /usr/local/bin/clear
chmod 777 clear
- 编辑脚本文件
vim clear文件内容如下
#!/bin/sh
find /usr/local/backups -mtime +10 -name “*.*” -exec rm -rf {} \;
- 将clear文件加入到系统计划任务,到点自动执行,执行
crontab -e,输入
// 这里的设置是每天凌晨2点执行clear文件进行数据清理,可以研究一下cron,制定自己需要的计划任务
* 2 * * */usr/local/bin/clear
上面第三步也可以采用另外一种方式
新建一个cron文件touch del_crontabvim del_crontab输入* 2 * * */usr/local/bin/clear
然后执行 crontab del_crontab,将 cron 文件添加到定时服务中
查看定时任务crontab -l
重启定时任务 service cron start或/etc/init.d/cron restart
查看定时任务的状态service cron status
其他具体例子
● 0 */2 * * * /sbin/service httpd restart 意思是每两个小时重启一次apache
● 50 7 * * * /sbin/service sshd start 意思是每天7:50开启ssh服务
● 50 22 * * * /sbin/service sshd stop 意思是每天22:50关闭ssh服务
● 0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘
● 1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件
● 00 03 * * 1-5 find /home “.xxx” -mtime +4 -exec rm {} ; 每周一至周五3点钟,在目录/home中,查找文件名为.xxx的文件,并删除4天前的文件。
● 30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
centos
笔记
● 修改/home目录下所有文件和各级子目录文件都权限
$sudo chmod 777 * -R /home