做导购网站 商品,c 网站开发实例,电商 网站 建设,怎么开发游戏软件赚钱crontab
crontab学习网站#xff08;19. crontab 定时任务 — Linux Tools Quick Tutorial#xff09;
例子
今天实际工作里用到的#xff08;已经进行了防信息泄露处理
比如我现在希望每周三上午10:00之行一个php脚本
--gpt生成
00 10 * * 3 cd /home/user/project/r…crontab
crontab学习网站19. crontab 定时任务 — Linux Tools Quick Tutorial
例子
今天实际工作里用到的已经进行了防信息泄露处理
比如我现在希望每周三上午10:00之行一个php脚本
--gpt生成
00 10 * * 3 cd /home/user/project/risk /usr/local/bin/php sendCheckVersionInfoRiskTagEmail.php sendCheckVersionInfoRiskTagEmail.log 21 00 10 * * 3: 这是 cron 作业的时间表达式指定了作业运行的时间。这表示在每周的周三的上午 10:00 执行作业。 cd /home/user/project/risk: 这一行是改变工作目录到指定的路径。在这里它将工作目录切换到 /home/user/project/risk。 : 这是逻辑运算符 AND表示只有当前一个命令成功执行后才执行下一个命令。 /usr/local/bin/php sendCheckVersionInfoRiskTagEmail.php: 这是要执行的命令它会运行一个 PHP 脚本文件 sendCheckVersionInfoRiskTagEmail.php。在这里它使用了 PHP 解释器 /usr/local/bin/php 来执行这个脚本。 sendCheckVersionInfoRiskTagEmail.log 21: 这部分是输出重定向的语法将命令的标准输出重定向到 sendCheckVersionInfoRiskTagEmail.log 文件中并将标准错误输出2重定向到标准输出1这样可以将标准错误输出也写入到同一个日志文件中。
因此这段代码的作用是在每周三的上午 10:00切换工作目录到 /home/user/project/risk 目录并执行一个 PHP 脚本 sendCheckVersionInfoRiskTagEmail.php将执行过程的输出记录到日志文件中。
crontab详解
概述
通过crontab 命令我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。
主要就是定时地执行某个脚本而不需要耗费大量人力重复性执行
crontab命令格式 crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
命令参数
注其实实际工作时都是公用的crontab文件基本上用crontab -e就够了修改crontab文件内容 -u user用来设定某个用户的crontab服务 filefile是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件crontab命令将接受标准输入键盘上键入的命令并将它们载入crontab。 -e编辑某个用户的crontab文件内容。如果不指定用户则表示编辑当前用户的crontab文件。 -l显示某个用户的crontab文件内容如果不指定用户则表示显示当前用户的crontab文件内容。 -r从/var/spool/cron目录中删除某个用户的crontab文件如果不指定用户则默认删除当前用户的crontab文件。 -i在删除用户的crontab文件时给确认提示。
crontab实际调用脚本的命令格式
分 时 日 月 星期 要运行的命令
比如最上方举的例子00 10 * * 3: 这是 cron 作业的时间表达式指定了作业运行的时间。这表示在每周的周三的上午 10:00 执行作业。 第1列分钟059 第2列小时0230表示子夜 第3列日131 第4列月112 第5列星期070和7表示星期天 第6列要运行的命令
实例
实例1每1分钟执行一次myCommand
*****myCommand
实例2每小时的第3和第15分钟执行
3,15****myCommand
实例3在上午8点到11点的第3和第15分钟执行
3,158-11***myCommand
实例4每隔两天的上午8点到11点的第3和第15分钟执行
3,158-11*/2**myCommand
实例5每周一上午8点到11点的第3和第15分钟执行
3,158-11**1myCommand
实例6每晚的21:30重启smb
3021***/etc/init.d/smbrestart
实例7每月1、10、22日的4 : 45重启smb
4541,10,22**/etc/init.d/smbrestart
实例8每周六、周日的1 : 10重启smb
101**6,0/etc/init.d/smbrestart
实例9每天18 : 00至23 : 00之间每隔30分钟重启smb
0,3018-23***/etc/init.d/smbrestart
实例10每星期六的晚上11 : 00 pm重启smb
023**6/etc/init.d/smbrestart
实例11每一小时重启smb
**/1***/etc/init.d/smbrestart
实例12晚上11点到早上7点之间每隔一小时重启smb
023-7***/etc/init.d/smbrestart
注意事项 新创建的cron job不会马上执行至少要过2分钟才执行。如果重启cron则马上执行。 当crontab失效时可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。- 千万别乱运行crontab -r。它从Crontab目录/var/spool/cron中删除用户的Crontab文件。删除了该用户的所有crontab都没了。 注意时区在终端中使用date命令查看时区如果时区不一致的话会导致脚本运行的时间和你预想的不一致 在crontab中%是有特殊含义的表示换行的意思。如果要用的话必须进行转义%如经常用的date ‘%Y%m%d’在crontab里是不会执行的应该换成date ‘%Y%m%d’。
history查看命令的执行时间
这个指的是我们使用history本来只能看到命令序号和具体用过什么命令而不知道这个命令发生的时间在进行一些溯源时比较麻烦
之所以想去了解这个东西是因为今天mt说因为我早上写需求的时候没pull最新的代码加上我自己的然后就提交了导致他的代码被覆盖
为了确定我早上是否进行了拉取最新代码的操作我就去查了一下history怎么显示出命令发生的时间。 -
mac设置方式
echoHISTTIMEFORMAT%F %T ~/.bashrc
source ~/.bashrc
如果使用了zsh环境的终端比如我
使用history -i