Cron设置简单定时任务

cron是一种在Unix-like操作系统中用于执行预定时间执行的任务的工具。它可以用来定期运行脚本、程序或者命令。cron的配置文件位于/etc/crontab,而用户的cron任务存储在/var/spool/cron/目录中。

一般使用crontab -e 命令来为当前用户添加定时任务,若要为其他用户添加可以再加上-u选项
 

crontab -u User -e #为其他用户创建定时任务

crontab : -l #列出当前用户的定时任务
          -r #删除当前用户的所有cron任务
          


Options:
 -u <user>  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n <host>  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -T <file>  test a crontab file syntax
 -s         selinux context
 -V         print version and exit
 -x <mask>  enable debugging

以下是Cron的基本语法格式:

* * * * * command
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

5个*分别表示: 分 、时 、日 、月 、周    +     需要定时执行的脚本


每隔多久执行可以使用'/' (除) 表示;

从多久到多久一个范围用'-'(横杆)表示 ;

特定范围内的多个时间点用','(逗号)隔开.

实例1:

每天凌晨3点运行一个脚本:0 3 * * * cmd

每隔5分钟执行一次:*/5 * * * * command

每天0点到1点每分钟执行一次:* 0-1 * * * command

每周的星期六和星期天的0点0分执行一次: 0 0 * * 6,0 command

实例2:

我编写了一个test.sh的脚本,内容是输出一串文字,且设置了定时任务为每分钟输出一次

由于是.sh文件所以需要chmod a+x权限, 然后在cron任务中,输出通常会通过邮件发送给当前用户,所以可以加入一个重定向日志进行记录.

以上是测试结果:可以看到确实log文件中有被每分钟追加写入test.sh中的文本,cron基本案例设置完毕.

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java可以使用cron表达式来实现定时任务cron表达式由7个时间元素组成,分别为秒、分、时、日期、月份、星期几和年份。其中,年份是可选的,一般不需要指定。Spring 4.x的Spring Task只支持前6个时间元素,而Quartz框架则支持完整的7个时间元素。 下面是一个使用Java实现定时任务的示例代码: ```java import org.quartz.*; import org.quartz.impl.StdSchedulerFactory; public class CronScheduler { public static void main(String[] args) throws SchedulerException { // 创建调度器 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // 创建任务 JobDetail job = JobBuilder.newJob(MyJob.class).build(); // 创建触发器,使用cron表达式 Trigger trigger = TriggerBuilder.newTrigger() .withSchedule(CronScheduleBuilder.cronSchedule("0 0 12 * * ?")) // 每天中午12点执行 .build(); // 将任务和触发器绑定到调度器 scheduler.scheduleJob(job, trigger); // 启动调度器 scheduler.start(); } } public class MyJob implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { // 在这里写你的定时任务逻辑 System.out.println("定时任务执行了"); } } ``` 上述代码中,首先创建了一个调度器对象,然后创建了一个任务对象(实现了Job接口),并创建了一个触发器对象,通过`withSchedule`方法传入cron表达式来指定任务执行的时间。最后,将任务和触发器绑定到调度器,并启动调度器。 以上就是使用Java实现定时任务简单示例。你可以根据需要自定义定时任务的逻辑和cron表达式来实现不同的定时功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值