1.编写sh文件
  创建:vi test.sh
  写入:date >> /xiaol/data.txt

2.默认创建的这个sh问件是没有执行权限的,修改权限
  chmod 777 test.sh

3.设置crontab定时任务
  打开定时任务配置文件:crontab -e
  定时调用test.sh:* * * * * /sambashare/test.sh

4.保存退出

5.如果有错,Linux会在执行的时候发送一份邮件给你
  cat /var/spool/mail/root

备注:
  定时任务需要crond服务的支持
    1.启动方法  service crond restart
    2.该服务默认是开机启动的
  取消定时任务
    1.全部取消 crontab -r
    2.取消某个 crontab -e 配置文件,删除要取消的哪一行配置
  查看目前都有那些定时任务
    crontab -l

第一个*        一小时当中的第几分钟      0-59
第二个*        一天当中的第几小时          0-23
第三个*        一个月当中的第几天          1-31
第四个*        一年当中的第几月              1-12
第五个*        一周当中的星期几              0-7(0和7都代表周日)

*        代表任何时间,比如第一个 * 就代表一小时中的每分钟都执行
,        代表不连续的时间,比如 0 8,12,16 * * * 代表每天8,12,16点0分执行
-        代表连续的时间范围,比如0 5 * * 1-6 代表在周一到周六凌晨5点0分执行
*/n     代表每个多久执行一次,比如*/10 * * * *代表每隔10分钟执行一次

例子:
45 22 * * *    
在22点45分执行

0 17 * * 1     
在每周1的17点0分执行

0 5 1,15 * *  
在每月1号和15号的凌晨5点0分执行

40 4 * * 1-5  
在每周一到周五的凌晨4点40分执行

*/10 4 * * *    
在每天的凌晨4点,每隔10分钟执行一次

0 0 1,15 * 1  
每月1号和15号,每周1的0点0分都会执行
  注意:星期几和几号最好不要同时出现,他们的意义都是天,容易混淆

需要根据时间删除这个目录下的文件,/home/lifeccp/dicom/studies,清理掉20天之前的无效数据。

可以使用下面一条命令去完成:

1
find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \;

这个是根据时间删除。

下面简要解释一下,这句shell命令:

1
find /home/lifeccp/dicom/studies -mtime +21 -name "*.*" -exec rm -Rf {} \;
  • /home/lifeccp/dicom/studies :准备要进行清理的任意目录
  • -mtime:标准语句写法
  • +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
  • "*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件
  • -exec:固定写法
  • rm -rf:强制删除文件,包括目录
  • {} \; :固定写法,一对大括号+空格+/+;

当然也可以根据文件名、根据大小,根据其他不同条件过滤删除,或者修改等,可以考虑sort等命令结合使用。

find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} ;

例1:

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:强制删除文件,包括目录

{} ; :固定写法,一对大括号+空格++;

例2:

1.#touch /usr/local/bin/clear

#chmod 777 clear

新建一个可执行文件clear

2.vi clear

编辑clear文件如下:

#!/bin/sh

find /usr/local/backups -mtime +10 -name “*.*” -exec rm -rf {} ;

ok,保存退出3.#crontab -e

将clear文件加入到系统计划任务,到点自动执行

输入:

* 2 * * */usr/local/bin/clear

这里的设置是每天凌晨2点执行clear文件进行数据清理,可以研究一下cron,制定自己需要的计划任务

示例:

#!/bin/sh

find /usr/local/jboss-4.2.3.GA/server/default/log -mtime +6 -name “server.log.*” -exec rm -rf {} ;

exit

[root@web3 ~]# crontab -l

编辑用户的Crontab文件

crontabl -e

用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,格式如下:* * * * *其时间段的含义如表二:

含义

取值范围

第一段

代表分钟

0—59

第二段

代表小时

0—23

第三段

代表日期

1—31

第四段

代表月份

1—12

第五段

代表星期几,0代表星期日

0—6

名称 : crontab使用权限 : 所有使用者使用方式 :crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }说明 :crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。餐数 :-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)-r : 删除目前的时程表-l : 列出目前的时程表时程表的格式如下 :f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。例子 :每月每天每小时的第 0 分钟执行一次 /bin/ls :0 7 * * * /bin/ls

在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :0 6-12/3 * 12 * /usr/bin/backup

周一到周五每天下午 5:00 寄一封信给 alex@domain.name :0 17 * * 1-5 mail -s “hi” alex@domain.name /dev/null 2>&1 即可例:如果用户的Crontab文件的内容是:29 19 * * * echo its dinner time,则系统每天的19:29显示‘its dinner time’示例(创建一个cron全过程,每分钟都会在test.txt里输入当前时间):

1. 以普通用户登录linux系统(我用的是CentOS4.1)

2. $crontab –e说明:系统默认的编辑器是VIM,如果不是请加上以下shell:$EDITOR=vi$export EDITOR

3. 输入”*/1 * * * * date >> $HOME/test.txt”,save and exit VIM

4. $su root

5. $cd /etc/init.d

6. ./crond restart

下面看看看几个具体的例子:

● 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命令

Linux定时任务调用sh文件的更多相关文章

  1. Linux下执行.sh文件

    Linux下执行.sh文件有两种情况: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必须有x权限] 二.直接sh 加上文件名.sh,如运行hello.s ...

  2. linux 下执行.sh文件总是提示permission denied

      linux 下执行.sh文件总是提示permission denied 如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限) chmod 777 *.sh or ch ...

  3. linux 下执行.sh文件提示permission denied

    linux 下执行.sh文件提示permission denied 在脚本文件目录下运行命令,赋予权限: chmod 777 *.sh or chmod +x  *.sh

  4. linux下执行.sh文件的方法和语法

    linux下执行.sh文件的方法    .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限.       是bash脚本么   可以用touch test.sh ...

  5. 解决Linux下编译.sh文件报错 “[: XXXX: unexpected operator”

    本人经常在Linux通过编译 .sh文件来生成工程,之前一直都没问题,代码一直都没变,但是今天编译的时候,却提示错误:

  6. linux下对sh文件的操作

    1.创建test.sh文件 touch test.sh 2.编辑sh文件 vi test.sh(i:插入 | esc:退出insert模式 | wq+回车:退出) 3.保存退出 敲击esc, 然后输入 ...

  7. linux系统使用sh文件传参数给matlab程序

      linux系统下使用sh文件传参数给matlab程序 (1)编写sh文件 程序以下面的行开始(必须在文件的第一行):   #!/bin/sh 定义需要传递的参数,用双引号引起,参数之间使用逗号或分 ...

  8. linux怎么运行.SH文件

    执行sh xx.sh命令就可以执行.sh文件了.如果直接执行xx.sh文件,就报权限错误 解决办法:执行chmod u+x xx.sh 来添加执行权限

  9. linux下执行sh文件报错:oswatcher_restart.sh: line 13: ./startOSW.sh: Permission denied

    1 查看执行sh文件的内容 [root@xxxdb0402 dbscripts]# more oswatcher_restart.sh  #!/usr/bin/ksh #export oswdir=` ...

随机推荐

  1. sql多字段相减///单字段多值

    SELECT IFNULL(t.预算金额,)-IFNULL(t.实使用金额,)-IFNULL(SUM(f.已审核.待审核总数),)remainingMoney FROM 表名 t LEFT JOIN ...

  2. 与大V一对一沟通 欢迎迷茫的你和优秀的你

    当当当~有个筹备一年的平台终于要发布啦! 在这一年中,他们的专业团队对现行货币市场进行精准分析,了解币圈用户所想的问题以及现在用户最想在平台上能够解决什么样问题后,推出了这样一个平台. 那就是ImCa ...

  3. SSH(Spring Struts2 Hibernate)框架整合(xml版)

    案例描述:使用SSH整合框架实现部门的添加功能 工程: Maven 数据库:Oracle 案例架构: 1.依赖jar包pom.xml <project xmlns="http://ma ...

  4. 网络流 最大流—最小割 之SAP算法 详解

    首先引入几个新名词: 1.距离标号: 所谓距离标号 ,就是某个点到汇点的最少的弧的数量(即边权值为1时某个点到汇点的最短路径长度). 设点i的标号为level[i],那么如果将满足level[i]=l ...

  5. Luogu 45887 全村最好的嘤嘤刀(线段树 树状数组)

    https://www.luogu.org/problemnew/show/T45887 题目背景 重阳节到了,我们最好的八重樱拥有全村最好的嘤嘤刀…… 题目描述 在绯玉丸力量的影响下,八重村成了一条 ...

  6. react-native-splash-screen 插件 android 系统app崩溃问题

    问题 react-native版本 0.53.3 react-native-splash-screen版本 3.0.6 一切配置妥当后出现如下问题: 在android studio里的调试报错为and ...

  7. spring-boot-maven-plugin 安装本地jar 包

    本地使用nexus 进行maven仓库管理.项目deploy 引入之后,总是找不到jar中定义的class或者配置文件等. 从截图上可以看到虽然class文件是有的,但是引用的时候却是找不到的. Sp ...

  8. centos 搭建git服务器和客户端

    参考资料:http://blog.feehi.com/linux/124.html 1.搭配环境 2.安装git 3.创建git用户 4.创建裸库 5.配置公钥匙 6.客户端clone代码库 1.搭配 ...

  9. Java虚拟机----垃圾回收与内存分配

    一.垃圾回收的对象: 在Java的运行时数据区中,程序计数器和虚拟机栈.本地方法栈是随着线程的生灭而生灭,栈当中栈帧的大小在编译的时候已知,在方法结束之后栈帧出栈,这部分的垃圾回收是明确的,因此需要讨 ...

  10. python全栈开发 * 继承性 层叠性 盒模型 标准文档流 * 180809

    ---恢复内容开始--- 一继承性 1.继承: 给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承. 2. 可继承: color . font-*(size). text-*(de ...