编写第一个shell文件,#!/bin/bash 是必须要写的,表示要是/bin/bash这个执行脚本的命令执行接下来写的脚本, echo "hello world !!"表示想前端打印一句话,具体看各自需求。
编写测试脚本:
生成文件夹的脚本(创建日期相关的文件夹):
#!/bin/bash
#按照时间生成日志文件或日志目录
#过去三个月的日期
date=$(date +%Y%m%d --date="-3 month")
#输出datetime
echo $date
#创建目录 使用mkdir命令
#首先判断目录是否存在,如果不存在则创建,存在则不再创建
if [ ! -d "/data/dq/test/${date}" ];then
mkdir /data/dq/test/${date}
echo "/data/dq/test/${date} 目录创建成功。"
else
echo "/data/dq/test/${date} 目录已存在。"
fi
-
删除文件夹的脚本(删除文件夹以及文件夹下的所有文件):
#定义date变量:上三个月日期,格式如:20191213
#!/bin/bash
date=$(date +%Y%m%d --date="-3 month")
#输出date,目录
echo $date
echo "/dat/test/${date}"
#首先判断目录是否存在,如果存在则删除:删除该目录以及该目录下的所有文件
if [ -d "/data/test/${date}" ];then
rm -rf /data/test/${date}
echo "/data/test/${date} 目录和以及目录下的所有文件已删除!!!"
else
echo "/data/test/${date} 目录不存在。"
fi
通过chmod命令赋予该脚本的执行权限chmod 755 hello.sh,否则没有执行权限,/root/hello.sh表示在全路径下执行该shell脚本
查看crontab服务状态:service crond status
service crond status
》》》 crond (pid 2056) is running..
设置需要执行的脚本
新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。
crontab -e配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务
查看调度任务
crontab -l //列出当前的所有调度任务
crontab -l -u jp //列出用户jp的所有调度任务
删除任务调度工作
crontab -r //删除所有任务调度工作
直接编辑 vim /etc/crontab ,默认的文件形式如下:
1 输入 :crontab -e , 显示一个编辑页面
2 输入任务:
*/10 * * * * 用户名 echo "Good morning." >> /data/test/test.txt
*/10 * * * * 用户名 /data/test/createRuleExcel.sh >> /data/test/createRuleExcel.txt
================= 方式2 直接编辑/etc/crontab 文件
因为不是root 用户, 看到改文件属于root 用户的, 其他用户无法编辑
(没有root 用户权限,只能放弃这个做法)
/etc/crontab文件和crontab -e命令区别
/etc/crontab文件和crontab -e命令区别
1、格式不同
# * * * * * user-name command to be executed
后者
#50 1 * * * command
2、使用范围
修改/etc/crontab这种方法只有root用户能用,这种方法更加方便与直接直接给其他用户设置计划任务,而且还可以指定执行shell等等,
crontab -e这种所有用户都可以使用,普通用户也只能为自己设置计划任务。然后自动写入/var/spool/cron/usename
部分参考:https://blog.csdn.net/CarloPan/article/details/103528983