Linux定时任务小demo

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/magi1201/article/details/75205818


       Linux的定时任务主要依赖于crontab命令,crontab命令的功能是在一定的时间间隔调度一些命令的执行。在Linux中做定时任务时,仅需要在/etc/crontab 文件中增加自己需要设置的定时任务频次和需要执行的脚本内容即可。


先来查看/etc/crontab文件

cat  /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed


我们看到文件/etc/crontab中每行任务的描述格式如下:

从左到右每列分别为

minute hour day month dayofweek username command

    minute - 从0到59的整数 
    hour - 从0到23的整数 
    day - 从1到31的整数 (必须是指定月份的有效日期)
    month - 从1到12的整数 (或如Jan或Feb简写的月份)
    dayofweek - 从0到7的整数,0或7用来描述周日 (或用Sun或Mon简写来表示)

    username 需要执行命令的用户
    command - 需要执行的命令(可用as ls /proc >> /tmp/proc或 执行自定义脚本的命令)


我们在zhangqi用户桌面下创建一个备份文件的脚本backup.sh,这个脚本需要每5分钟执行一次

#!/bin/bash

#date 显示时间,用时间的不同做为备份文件的名字,这样以前的备份就不会被覆盖
cd /home/zhangqi/Desktop/
datename=$(date +%Y%m%d-%H%M)            #定义时间变量名和显示时间格式
tar -zcvPf /home/zhangqi/Desktop/$datename.tar.gz /home/zhangqi/Desktop/shellscript/*

我们使用root用户在/etc/crontab文件中做下配置

# *  *  *  *  * user-name command to be executed

*/5 * * * * zhangqi /home/zhangqi/Desktop/backup.sh

这样zhangqi用户桌面每隔5分钟便会出现一个新的tar.gz 文件出来



以上示例在Redhat虚拟机中测试通过,以上内容若有疏漏之处,还望批评斧正,不胜感激。谢谢。

猜你喜欢

转载自blog.csdn.net/magi1201/article/details/75205818
今日推荐