在项目中,有时需要服务器在指定时间完成某些操作,
这时我们可以使用 crontab 命令来完成这些操作。
在这篇文章中我们使用 crontab 结合 shell 脚本,
实现定时访问某个 url ,并保存日志。。。

首先打开命令行,编辑crontab文件:

crontab -e
Bash

在crontab文件中添加一行

*/1 * * * *  /tmp/ceshi/ceshi >> /tmp/ceshi/ceshi.log 2>&1
Bash

代码解释:

  • */1 * * * * 表示每一分钟执行一次
  • /tmp/ceshi/ceshi 脚本文件的位置
  • >> 追加
  • /tmp/ceshi/ceshi.log 输出日志文件位置
  • 2>&1 标准错误输出 重定向到 标准输出

命令行下保存 :wq

下面我们新建名为 ceshi shell脚本:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
curl -sS --connect-timeout 10 -m 60 'https://www.baidu.com/'
echo "----------------------------------------------------------------------------"
endDate=`date  "%Y-%m-%d %H:%M:%S"`
echo "★[$endDate] Successful"
echo "----------------------------------------------------------------------------"
Bash

保存退出,这里一个定时访问百度的计划任务就添加完成了。。

常见问题解决:

问题一: Permission denied

权限被拒绝,这里是因为执行文件的权限的问题,
这里我们将ceshi文件的权限修改一下即可。。

chmod 777 /tmp/ceshi/ceshi
Bash

问题二: /bin/bash^M: bad interpreter: No such file or directory

这是由于shell脚本文件是dos格式,即每一行结尾以rn来标识,而unix格式的文件行尾则以n来标识。
查看脚本文件是dos格式还是unix格式的几种办法。
(1)cat -A filename 从显示结果可以判断,dos格式的文件行尾为^M$,unix格式的文件行尾为$。
(2)od -t x1 filename 如果看到输出内容中存在0d 0a的字符,那么文件是dos格式,如果只有0a,则是unix格式。
(3)vi filename打开文件,执行 : set ff,如果文件为dos格式在显示为fileformat=dos,如果是unxi则显示为fileformat=unix。

解决方法:
(1)使用linux命令dos2unix filename,直接把文件转换为unix格式
(2)使用sed命令sed -i “s/r//” filename 或者 sed -i “s/^M//” filename直接替换结尾符为unix格式
(3)vi filename打开文件,执行 : set ff=unix 设置文件为unix,然后执行:wq,保存成unix格式。

冯奎博客
夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!