想要在linux下定时删除某个文件夹下的临时文件,在网上找了找,总结了一下:
- 删除文件的shell
direc 是删除文件的文件夹 ,记得将此文件的权限改一下 chmod +x filename.sh
#!/bin/bash direc="/opt/tmp/aaa/a" for dir2del in $direc/* ; do if [ -f "$dir2del" ]; then rm -rf $dir2del fi done
2.crontab 执行任务调度
命令:[root@operation aaa]# crontab -e
编辑调度任务:
26 11 18 12 * /opt/tmp/aaa/filename.sh
以上命令是在12月18日11点26分执行filename.sh包含的任务
小PS:
删除 crontab -r
crontab task 格式
* * * * * task
分 时 日 月 周 task
第1列 分钟1~5 9 (0表示0分)
第2列 小时1~2 3(0表示子夜)
第3列 日1~3 1
第4列 月1~1 2
第5列 星期0~6(0表示星期天)
第6列 要运行的命令
参考:http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html
http://www.oschina.net/code/snippet_222150_8034
http://www.th7.cn/system/lin/201308/42913.shtml
http://blog.chinaunix.net/uid-7530389-id-2050029.html
http://www.cnblogs.com/zemliu/archive/2012/08/03/2622162.html
最近需要在服务器上部署定时任务,拿到了sudo密码,下面说下布置某用户定时任务的方法
主要是用crontab命令来实现
1.指定用户的crontab文件
sudo touch /var/spool/cron/testuser
crontab -u testuser /var/spool/cron/testuser
2.编辑crontab文件
首先指定编辑器,我这之前默认是用nano,表示不会用,改为了vim
sudo select-editor
然后加入定时任务
crontab -e
在文件中加入 0 23 * * * bash /home/testuser/test.sh
请注意,这里一定要有权限执行该脚本,并且该脚本里的命令都要有权限执行才可以,否则crontab任务会失效
btw,如果是crontab要执行java程序,需要自己在脚本中将java的环境变量加进去,就像下面这样
#此处引入环境变量,java路径请自行修改
source /etc/profile
JAVA_HOME="/usr/lib/jvm/java-6-openjdk-amd64"
PATH="$JAVA_HOME/bin:$PATH"
export JAVA_HOME PATH
具体的JAVA目录则根据自己的java路径改好就好
3.重启cron服务
sudo service cron restart