//有的shell解释器是/bin/tcsh而不是传统的/bin/bash.而且两者语法有些差异,注意避免.比如设置变量tcsh是set 变量 =`****`
1.crontab是什么,是linux里面自带的一个定时任务,可以让我们在某个时间段进行一些操作,无需人工干预。例如:定时发送邮件、自动采集、队列处理、数据备份、定时开灯等等,这只是一部分的举例,我们还可以用于更多的应用。不过在程序员里面通常用来做数据备份用以及定时执行数据操作用。crontab是每个用户都独有的。
2.也用来定时执行可执行文件。
crontab -l 可以查看当前定时任务执行计划。
crontab -e 可以编译当前定时任务执行计划。
crontab -u 【用户名】 后面接上 -l / -e.查看指定用户的执行计划
cat /var/log/syslog 可以查看crontab执行情况
service cron [tab自动补齐] 可以看到很多选项
service cron restart重启
service cron status查看执行状态
默认linux都安装了crontab, 也可以sudo apt-get install crontab查看当前crontab是否安装
crontab格式如下:例如:*/2 * * * * xxx 的意思是每两分钟执行一次xxx程序。
//每天的1-6点每十分钟执行一次 */10 1-6 * * * echo `date`>>/home/sunny //每天的凌晨10分追加一次 10 1 * * * echo `date`>>/home/sunny //精确到秒需要借助sleep函数,如下: * * * * * echo `date`>>/home/sunny * * * * * sleep 10;echo `date`>>/home/sunny * * * * * sleep 20;echo `date`>>/home/sunny * * * * * sleep 30;echo `date`>>/home/sunny * * * * * sleep 40;echo `date`>>/home/sunny * * * * * sleep 50;echo `date`>>/home/sunny
重点:
1.如果程序执行不成功:在crontab -e的界面最上两行输入如下:指定脚本执行shell以及环境变量
SHELL=/bin/bash
2.如下,加入./etc/profile
SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin * * * * * ./etc/profile;/home/wzw/C++/timeget/wzw.sh > 1.txt */1 * * * * date > /home/wzw/Desktop/2.txt
3.如果想直接执行echo hello或者date,那么在crontab添加上述指令后,不能在当前终端查看到任何输出,
只能重定向输出到某一绝对路径文件中。(crontab 执行任务是在系统里面执行,执行的时候是没有终端的)