crontab简单介绍与一次排查crontab

      linux下想看一下定时任务,crontab -l 一看,只有一个定时任务,但是我通过var/log/cron-xxxxxxxx得知肯定有其他的定时任务,排查,看日志,还看了一下其他的服务器是不是通过定时任务执行了,导致我这里(数据库新加了月份分表),直到想起了,是不是有多个用户,查看所有用户(/etc/passwd),找到其他用户进去,查看了一下,果然,定时任务写在其他用户下了。

   

定时任务是我们常用到的一个必备的技能,在windows上有定时计划任务,在linux里面,咱们就要按照格式来写了。

crontab 命令

crontab [-u user] [ -e | -l | -r ]
        -e      (edit user's crontab) 编辑
        -l      (list user's crontab)  查看
        -r      (delete user's crontab) 删除

* * * */1 * /usr/bin/wget -q -O test.txt http://106.**.**.**/Test.php

crontab编写规则

分 时 日 月 星期 要运行的命令
[* * * * * ]
第1列分钟0~59
第2列小时0~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~7(0和7表示星期天)
第6列要运行的命令

/etc/crontab 提示格式为:

# Example of job definition:
# .---------------- minute (0 - 59) //分钟
# |  .------------- hour (0 - 23)     //小时
# |  |  .---------- day of month (1 - 31)    //天
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...//(月份)
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat     //(星期)
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

  • “*” 代表取值范围内的数字
  • “/” 代表”每”
  • “-” 代表从某个数字到某个数字
  • “,” 分开几个离散的数字

我写了一个一个月执行一次的php文件

* * * */1 * /usr/bin/wget -q -O testOne.txt http://106.**.**.**/Test.php

上面这个定时任务的含义是:每一个月执行一次http://106.**.**.**/Test.php 这个脚本

wget的参数信息有必要介绍一下:

启动

-V, --version 显示wget的版本后退出

-h, --help 打印语法帮助

-b, --background 启动后转入后台执行

-e, --execute=COMMAND 执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

记录和输入文件

-o, --output-file=FILE 把记录写到FILE文件中

-a, --append-output=FILE 把记录追加到FILE文件中

-d, --debug 打印调试输出

-q, --quiet 安静模式(没有输出)

-v, --verbose 冗长模式(这是缺省设置)

-nv, --non-verbose 关掉冗长模式,但不是安静模式

-i, --input-file=FILE 下载在FILE文件中出现的URLs

-F, --force-html 把输入文件当作HTML格式文件对待

-B, --base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀

--sslcertfile=FILE 可选客户端证书

--sslcertkey=KEYFILE 可选客户端证书的KEYFILE

--egd-file=FILE 指定EGD socket的文件名

下载

--bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)

-t, --tries=NUMBER 设定最大尝试链接次数(0 表示无限制).

-O --output-document=FILE 把文档写到FILE文件中

-nc, --no-clobber 不要覆盖存在的文件或使用.#前缀

-c, --continue 接着下载没下载完的文件

--progress=TYPE 设定进程条标记

-N, --timestamping 不要重新下载文件除非比本地文件新

-S, --server-response 打印服务器的回应

--spider 不下载任何东西

-T, --timeout=SECONDS 设定响应超时的秒数

-w, --wait=SECONDS 两次尝试之间间隔SECONDS秒

--waitretry=SECONDS 在重新链接之间等待1...SECONDS秒

--random-wait 在下载之间等待0...2*WAIT秒

-Y, --proxy=on/off 打开或关闭代理

-Q, --quota=NUMBER 设置下载的容量限制

--limit-rate=RATE 限定下载输率

目录

-nd --no-directories 不创建目录

-x, --force-directories 强制创建目录

-nH, --no-host-directories 不创建主机目录

-P, --directory-prefix=PREFIX 将文件保存到目录 PREFIX/...

--cut-dirs=NUMBER 忽略 NUMBER层远程目录

HTTP 选项

--http-user=USER 设定HTTP用户名为 USER.

--http-passwd=PASS 设定http密码为 PASS.

-C, --cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许).

-E, --html-extension 将所有text/html文档以.html扩展名保存

--ignore-length 忽略 `Content-Length'头域

--header=STRING 在headers中插入字符串 STRING

--proxy-user=USER 设定代理的用户名为 USER

--proxy-passwd=PASS 设定代理的密码为 PASS

--referer=URL 在HTTP请求中包含 `Referer: URL'头

-s, --save-headers 保存HTTP头到文件

-U, --user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION.

--no-http-keep-alive 关闭 HTTP活动链接 (永远链接).

--cookies=off 不使用 cookies.

--load-cookies=FILE 在开始会话前从文件 FILE中加载cookie

--save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

这样一个简单的定时任务就做好了

发布了45 篇原创文章 · 获赞 3 · 访问量 7137

猜你喜欢

转载自blog.csdn.net/qq_38228582/article/details/99299963
今日推荐