linux执行sh文件命令是什么(linux强制修改文件权限)


作为全新小白突然接触crontab这个工具,难免触及一些Linux基本规则的雷区,这里将自身经验顺带记录,留作他人日后借鉴。

周边命令

做任务计划,不是写好任务指令就完成了,还要注意以下一些事项:

1、每次修改完crontab任务计划命令后执行以下命令

systemctl reload crond
systemctl restart crond

2、给文件增加可执行权限

chmod +x ./cron.sh

3、脚本规范-在脚本开头写入

#!/bin/bash

4、绝对路径:由某些软件支持的命令,需要写完整路径调用,比如我平时使用的

downloadcsv intodb /opt/downloadcsv/export/xiaoneng_sxd/xiaoneng_sxd.csv 数据库密码

需要修改为

/opt/downloadcsv/downloadcsv intodb /opt/downloadcsv/export/xiaoneng_sxd/xiaoneng_sxd.csv 数据库密码

5、权限问题

如下,只需新建.sh文件,并在其中,依据执行计划需求按格式逐行输入执行时间,执行用户,执行命令即可

比较关键的问题是,这个.sh文件必须授予执行权限,可以采用下面的命令进行授权:

chmod +x ./cron.sh

另外,如果command语句中涉及到日志文件的写入,该日志文件要提前建好,还要进行写入授权,以免出错。

crontab命令与语法

我们权且将crontab命令分位两类:

一类是crontab任务计划本身的命令,另一类是crontab工具的操作指令。

1、crontab任务计划指令语法Linux服务器的任务计划-crontab用法

图片来自网络-侵删

在以上各个字段中,还可以使用以下特殊字符:

“*”代表所有的取值范围内的数字,如月份字段为*,则表示1到12个月;

“/”代表每一定时间间隔的意思,如分钟字段为*/10,表示每10分钟执行1次。

“-“代表从某个区间范围,是闭区间。如“2-5”表示“2,3,4,5”,小时字段中0-23/2表示在0~23点范围内每2个小时执行一次。

“,”分散的数字(不一定连续),如1,2,3,4,7,9。

注:由于各个地方每周第一天不一样,因此Sunday=0(第一天)或Sunday=7(最后1天)。

2、任务计划命令语法示例:

通过crontab -e 呼出crontab任务计划编辑页面(也有另一种方法,直接vi /etc/crontab文件进行编辑<这种是作为系统任务运行>),然后在弹出的编辑页面输入下列命令

* */1 * * * root /opt/downloadcsv/downloadcsv/cron.sh
# 强烈建议把用户(root)加上,否则可能执行过程中会出现没有权限无法执行的情况。

上述命令表示每隔1小时,以root身份执行sh命令文件

crontab工具的操作指令

crontab [-u user] file
crontab [ -u user ] [ -i ] { -e | -l | -r }
  • • -u user:用于设定某个用户的crontab服务;
  • • file: file为命令文件名,表示将file作为crontab的任务列表文件并载入crontab;
  • • -e:编辑某个用户的crontab文件内容,如不指定用户则表示当前用户;
  • • -l:显示某个用户的crontab文件内容,如不指定用户则表示当前用户;
  • • -r:从/var/spool/cron目录中删除某个用户的crontab文件。
  • • -i:在删除用户的crontab文件时给确认提示。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论