Linux定时任务调用sh文件
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文件的更多相关文章
- Linux下执行.sh文件
Linux下执行.sh文件有两种情况: 一.直接./加上文件名.sh,如运行hello.sh为./hello.sh[hello.sh必须有x权限] 二.直接sh 加上文件名.sh,如运行hello.s ...
- linux 下执行.sh文件总是提示permission denied
linux 下执行.sh文件总是提示permission denied 如果你是root登陆的话(不是的话,切换到root用户,对*.sh赋可执行的权限) chmod 777 *.sh or ch ...
- linux 下执行.sh文件提示permission denied
linux 下执行.sh文件提示permission denied 在脚本文件目录下运行命令,赋予权限: chmod 777 *.sh or chmod +x *.sh
- linux下执行.sh文件的方法和语法
linux下执行.sh文件的方法 .sh文件就是文本文件,如果要执行,需要使用chmod a+x xxx.sh来给可执行权限. 是bash脚本么 可以用touch test.sh ...
- 解决Linux下编译.sh文件报错 “[: XXXX: unexpected operator”
本人经常在Linux通过编译 .sh文件来生成工程,之前一直都没问题,代码一直都没变,但是今天编译的时候,却提示错误:
- linux下对sh文件的操作
1.创建test.sh文件 touch test.sh 2.编辑sh文件 vi test.sh(i:插入 | esc:退出insert模式 | wq+回车:退出) 3.保存退出 敲击esc, 然后输入 ...
- linux系统使用sh文件传参数给matlab程序
linux系统下使用sh文件传参数给matlab程序 (1)编写sh文件 程序以下面的行开始(必须在文件的第一行): #!/bin/sh 定义需要传递的参数,用双引号引起,参数之间使用逗号或分 ...
- linux怎么运行.SH文件
执行sh xx.sh命令就可以执行.sh文件了.如果直接执行xx.sh文件,就报权限错误 解决办法:执行chmod u+x xx.sh 来添加执行权限
- 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=` ...
随机推荐
- symfony-表单学习
---恢复内容开始--- 构成表单的几个元素 1.数据模型 M 一种比较抽象的概念,按我的理解来说,本质上就是数据的一种存在形式,可以看做一个类,一般对这些模型进行crud操作.一种是真实存在的数据模 ...
- 还不知道spring的RestTemplate的妙用吗
为什么要使用RestTemplate? 随着微服务的广泛使用,在实际的开发中,客户端代码中调用RESTful接口也越来越常见.在系统的遗留代码中,你可能会看见有一些代码是使用HttpURLConnec ...
- 详述 hosts 文件的作用及修改 hosts 文件的方法
1 什么是hosts文件? hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联“ 数据库 ”.当用户在浏览器中输入一个需要登录的网址时,系统会首 ...
- coolSQL安装与使用
由于笔者最近支援其他项目,所使用的数据库为informix 所以安装一个coolSQL客户端方便些,当然命令行方式也可以,但是感觉不太友好,下面把安装与简单使用过程分享给大家. 一.下载coolSQL ...
- js 原生_拖动页面元素,松开释放
嗯哼.不多说,直接上代码了. // 为元素 绑定拖动事件 function bindDragEvent(obj){ obj.onmousedown = function(e){ e = e || wi ...
- Linux安装nginx详细步骤
安装依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel 在/usr/local/下创建一个nginx的文件夹 ...
- 切换controller 后面的最好不要用id参数,不然会根据路由规则改变
//切换actionResult return RedirectToAction("Edit", "EngineeringCase", ...
- Python自学知识点----Day03
cd指令说明 1).作用:切换工作目录. 2). 命令(注意空格) 含义 cd ~===cd 回到家目录 cd . ...
- 让AI简单且强大:深度学习引擎OneFlow技术实践
本文内容节选自由msup主办的第七届TOP100summit,北京一流科技有限公司首席科学家袁进辉(老师木)分享的<让AI简单且强大:深度学习引擎OneFlow背后的技术实践>实录. 北京 ...
- PHP 利用CURL(HTTP)实现服务器上传文件至另一服务器
// 上传端 /** * 向目标地址推送xls文件 * @Date 2019/4/29 */ public function putXls() { // 目标接口 $url = "http: ...