分类 教程 下的文章

Linux Crontab命令定时任务基本语法与操作教程

Crontab是一个Unix/Linux系统下的常用的定时执行工具,可以在无需人工干预的情况下运行指定作业。很多时候我们都要用到Crontab命令,例如在 《Let’s Encrypt 免费 通配符(野卡)域名证书》申请方法中提到了acme.sh 脚本就是利用了Crontab定时任务的形式来更新SSL证书。

通过crontab命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本,用Crontab实现每天定时重启VPS、服务器或者是Nginx、PHP、MysqL服务等。

总之,掌握基本的Crontab命令语法对于我们管理自己的VPS主机是非常有必要的,本篇文章通过实例来讲解如何使用Linux Crontab命令,不作深入的探究,主要是方便日后的快速查询与参考。

 

一、Crontab查看编辑重启

1、查看crontab定时执行任务列表

crontab -l

2、编辑crontab定时执行任务

crontab -e

3、删除crontab定时任务

crontab -r

4、相关命令:

sudo service crond start     #启动服务sudo service crond stop      #关闭服务sudo service crond restart   #重启服务sudo service crond reload    #重新载入配置sudo service crond status    #查看服务状态

二、Crontab基本格式语法

crontab 的时间表达式:

基本格式 :          command分 时 日 月 周 命令

先来看一个例子。每天凌晨1:00执行备份程序:0 1 /root/backup.sh 。其中/root/backup.sh 这是脚本路径,要使用绝对路径,前面的日期格式请直接看下图就知道了。

crontab还有操作符,用来实现一些复杂的时间设定需要。操作符有:

1、 取值范围内的所有数字 ,代表所有。

2、/ 每过多少个数字 ,代表每隔n长时间。

3、- 从X到Z ,代表一段时间范围。

4、,散列数字,代表分割开多个值。

PS:2018年4月15日更新,如果还有搞不懂代码公式的,可以使用这个在线Cron表达式生成器:http://cron.qqe2.com/

三、20个经典Crontab应用实例

以脚本/root/backup.sh 为演示,大家在使用时记得替换为自己的脚本路径。

 

实例1:每1分钟执行一次

     /root/backup.sh

实例2:每小时的第3和第15分钟执行一次

3,15     /root/backup.sh

实例3:每天的8点到11点的第3和第15分钟执行一次

3,15 8-11    /root/backup.sh

实例4:每隔两天的上午8点到11点的第3和第15分钟执行一次

3,15 8-11 /2     /root/backup.sh

实例5:每周一上午8点到11点的第3和第15分钟执行一次

3,15 8-11   1 /root/backup.sh

实例6:每晚的21:30执行一次

30 21    /root/backup.sh

实例7:每月1、10、22日的4 : 45执行一次

45 4 1,10,22   /root/backup.sh

实例8:每周六、周日的1 : 10执行一次

10 1   6,0 /root/backup.sh

实例9:每天18 : 00至23 : 00之间每隔30分钟执行一次

0,30 18-23    /root/backup.sh

实例10:每星期六的晚上23: 00 pm执行一次

0 23   6 /root/backup.sh

实例11:每一小时执行一次

 /1    /root/backup.sh

实例12:每天晚上23点到第二天7点之间,每隔一小时执行一次

 23-7/1    /root/backup.sh

实例13: 每个星期的第一天执行一次(即每个星期天晚上24:00开始执行).

@weekly /root/backup.sh

实例14:每个月的15日执行一次.

0 11 15   /root/backup.sh

实例15:每个月的第一天执行一次(即每个月的1日凌晨0点开始执行).

@monthly /root/backup.sh

实例16: 在指定的月份执行一次(在1月,4月和 6月每天晚上0点执行一次).

0 0  jan,apr,jun  /root/backup.sh

实例17: 重启后执行一次.

@reboot /root/backup.sh

实例18:定时任务执行后发一封邮件通知.

MAILTO="raj"1 1    /root/backup.sh

实例19:指定shell (默认的是/bin/bash)

SHELL=/bin/sh1 1    /root/backup.sh

实例20:指定环境变量.

PATH=/sbin:/bin:/usr/sbin:/usr/bin 1 1    /root/backup.sh

四、Crontab可能存在的问题

4.1  Crontab不立即生效

大家新建的Crontab定时任务保存后需要等待2分钟后才会执行,当然如果想要立即执行可以重启Crontab。当crontab失效时,可以尝试/etc/init.d/crond restart解决问题,或者查看日志看某个任务有没有执行/报错tail -f /var/log/cron。

4.2  Crontab不执行

脚本中涉及文件路径时写全局路径,更新系统时间时区后需要重启cron。当手动执行脚本OK,但是crontab死活不执行时很有可能是环境变量,可尝试在crontab中直接引入环境变量解决问题,例如:

0     . /etc/profile;/bin/sh /root/backup.sh

4.3  Crontab无权限执行

要注意系统级任务调度与用户级任务调度。只有 root 用户和 crontab 文件的所有者可以在 -e 、-l-r 和 -v标志后面使用 UserName 以编辑、列出、除去或验证指定用户的 crontab 文件。

root用户的任务调度操作可以通过”crontab –uroot –e”来设置,也可以将调度任务直接写入/etc/crontab文件。

想编辑别的用户的 crontab, 使用root运行下面的命令,同一个格式 (追加 “-u username” 到命令后) 也可以用来列出或删除 crontabs。

 crontab -u username -e

4.4  Crontab执行后通知

当Crontab定时任务在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,可以在日志中/var/log/cron看到。若是你不希望收到这样的通知,请在每一行空一格之后加上 > /dev/null 2>&1 即可。

 

全文转载修改来自:挖站否

免费SSL证书收集整理--免费给你的网站开启Https安全加密访问

  • 前言

现在好多网站已经开始上线Https加密访问了,SSL证书用于加密HTTP协议,也就是HTTPS。给网站添加SSL证书并不复杂,像以前分享的LNMP、宝塔面板WDCP面板等都支持自定义SSL证书或者一键申请安装Let’s Encrypt证书。

自从Let’s Encrypt推出了各大浏览器支持和认可的免费SSL证书后,之前那些SSL巨头们开始放下了“姿态”推出了不少的域名型SSL证书(DV SSL)。现在申请一个免费的SSL证书已经非常简单的了,只要验证域名后就可以签发SSL证书了。

本篇文章就来收集整理国内外各大免费SSL证书,除了Let’s Encrypt,其它的免费SSL证书基本上是各大商家与GeoTrust,Comodo,Symantec合作推出的,只不过申请的入口不同而已,申请到的SSL证书是没有区别的。

 

  • 免费SSL证书收集整理

服务商 证书的类型 简要介绍 时长 评分
         
Let’s Encrypt Let’s Encrypt Let's Encrypt是第一个免费并且开源的CA,且已经获得Mozilla、微软等主要浏览器厂商的根授信,是免费SSL证书中首选,wzfou.com用的SSL就是这家。目前已经推出了免费泛域名证书,参考:Let’s Encrypt SSL 三月 9.5
Cloudflare Comodo CloudFlare推出的UniversalSSL功能,向所有CloudFlare用户(包括免费用户)提供SSL加密功能,前提你需要使用他们家的CDN。 未知 8.7
FreeSSL.org TrustAsia CA
Let's Encrypt
一个免费提供证书申请、证书管理和证书到期提醒服务的网站。Let's Encrypt 通过其官方 ACME 服务生成。TrustAsia 通过其官网 OpenAPI 的方式生成。参考:FreeSSL.org 一年 8.3
SSL For Free Let's Encrypt 基于Let's Encrypt的API开发的可供在线申请Let's Encrypt免费SSL证书的网站。参考:SSL_For_Free 三月 8.2
阿里云SSL DigiCert 阿里云与天威诚信推出了基于Symantec(赛门铁克)的免费SSL证书 一年 8.0
腾讯云SSL DigiCert 腾讯云与赛门铁克合作推出了免费的TrustAsia DV SSL证书 一年 8.0
七牛云SSL TrustAsia 七牛联合TrustAsia推出免费SSL证书,仅限七牛产品使用。 一年 7.5
百度云SSL Symantec 百度云联合Symantec(赛门铁克)推出DV免费版本证书,仅限百度云产品使用。 未知 7.0
360网站卫士SSL Symantec 360网站卫士如果要使用免费SSL证书必须得实名认证,且需要使用360的CDN。 未知 6.5

 

引用转载出处:挖站否

.

FreeSSL.org:免费提供TrustAsia/Let's Encrypt(支持通配符) SSL证书 附:简单申请教程

  • 申请地址

申请地址:https://freessl.org

  • 官方介绍

为什么要使用我们免费申请证书的服务?

1、100% 永久免费

再也不用付费申请 SSL 证书. 非常感谢 Let's Encrypt 与 TrustAsia 为我们提供免费SSL证书。

2、广泛被信任

我们所提供的免费 SSL 证书被 99.9% 的主流浏览器所信任。

3、使用 SSL 的优势

保护用户的数据,增加用户的信任;提高搜索的排名;保护网站免受黑客的攻击。

4、到期提醒服务

我们会在证书到期前 30、7 天通过邮件提醒您,您可登录到管理后台管理查看你的证书。

5、私钥安全有保障

我们采用浏览器本地生成私钥,从而保护私钥不在网络上传播,确保了您的证书安全。

关于FreeSSL是如何运行的?

1、提供 Let's Encrypt 与 TrustAsia CA 的免费HTTPS证书申请。

两者均通过验证域名的方式申请:

  • Let's Encrypt 通过其官方 ACME 服务生成。
  • TrustAsia 通过其官网 OpenAPI 的方式生成。

2、私钥(Private Key)通过浏览器自主生成,保证私钥安全。

对于现代浏览器,我们在浏览器中使用 Web Cryptography API 生成一个私钥,从而保证你的私钥不会在网络上传输。当HTTPS证书申请成功后,私钥将会从您的浏览器中删除。如果您的浏览器 不支持 Web Cryptography API,我们将从服务器生成私钥,通过 HTTPS SSL 下发给您,我们承诺绝不保存用户私钥。但是,为了更好的安全性,我们仍然建议使用支持 Web Cryptography API 的浏览器来生成客户端。您还可以在生成证书时提供自己的 CSR,这种情况下,您将绝对的保证私钥的安全。

  • 申请步骤

下面简单的说下申请步骤,这里就以申请 Let's Encrypt 通配符SSL为例,如果需要申请其他证书,请自行在下方选择:

1、直接输入你要申请的域名,如:*.example.com (如果申请多域名证书,则多个英文域名使用逗号隔开,通配符则会在点击创建后自动补全顶级域名example.com),点击创建免费的SSL证书

2、输入邮箱、申请的证书品牌、证书类型、验证方式以及选择CSR生成等

关于证书类型的ECC和RSA,这里不做详细介绍了,具体可自行了解,新手或者不是很了解这两种类似证书的同学,建议选择最常见的RSA即可,CSR也可以直接选择浏览器生成

3、验证DNS

目前,Let's Encrypt通配符证书暂时只支持DNS验证方式,会给出解析记录,去到你的域名DNS解析管理平台做好DNS的TXT解析,具体操作可以参考之前的文章《Let’s Encrypt:免费 通配符(野卡)域名证书 申请方法》

这里,会在你点击生成后自动给出TXT记录,并在下方有一个60秒的自动倒计时验证,如果没有自动完成DNS解析验证,可以在后面点击手动验证。

4、下载证书

验证完成后,则会在页面下方显示你的证书文件和私钥文件内容,可以点击下面的下载证书,将证书文件下载到本地保存。完整如图:

注意:这里下载的证书文件压缩包,包含:

证书文件:full_chain.pem(此文件内容同时包含了完整的证书链,方便使用nginx的同学直接使用

私钥文件:private.key

 

其实,还有很多申请免费SSL的地方,以后再为大家介绍吧。

SSLforFree: 已经支持Let’s Encrypt通配符SSL签发

  • 关于SSLforFree

 之前也有文章已经提到过这家,提供网页免费申请SSL证书,无需拥有VPS服务器,提供的也是Let’s Encrypt的证书。值得一提的是,看到消息说已经支持签发通配符了。这就方便那些使用虚拟主机的朋友了。

  • 申请地址

https://www.sslforfree.com ;

SSLforFree官方说明:

1.Free Wildcard Certificates

Wildcard certificates allow you to secure a domain and any subdomains under that domain. If you wanted to secure any subdomains of example.org that you have now or in the future you can make a wildcard certificate. To generate wildcard certificates add an asterisk to the beginning of the domain(s) followed by a period. Wildcard domains do not secure the root domain so you must re-enter the root domain if you want it also secured under one certificate. For example to create a wildcard domain for example.org enter .example.org example.org. To create a wildcard certificate for multiple domains such as example.org and example.com enter .example.org example.org .example.com example.com. Manual DNS verification will be required.

2.Multiple Domains or Subdomains or Wildcards

Multiple domains or subdomains are allowed and should be separated by spaces (e.g. "subdomain.domain.com domain.com otherdomain.org .wildcarddomain.com"). If the multiple domains or subdomains pertain to multiple directories then you must use manual HTTP verification and upload verification files to the correct directories or use DNS verification.

3.Prevent WWW from being Added

We automatically add the www version of the domain if not already added as most users want that implicitly. To remove the www just submit the domains you want to verify then on the verification page near the top click on "Add / Edit Domains" and remove it and submit again.

  • 有弊有利 

1.使用这个网站申请自然是方便了没有vps操作,使用虚拟主机建站的朋友

但是在这里申请的SSL证书,需要在90天到期前,再次来申请并手动替换原有的SSL证书和私钥key文件。

2.如果你是使用vps服务器建站,并使用Acme.sh脚本工具申请,则会自动在到期前检查并重新签发替换。

  • 相关文章以及参考 

1.Let’s Encrypt:免费 通配符域名证书将于 2018 年 2 月 27 日上线(附:旧版申请方法) 

2.Let’s Encrypt:免费 通配符(野卡)域名证书 申请方法

3.SSLforFree: 我已经支持通配符签发

Let’s Encrypt:免费 通配符(野卡)域名证书 申请方法

  • Let’s Encrypt 简介

Let’s Encrypt的通配符原本之前官方说的是2月27日上线,但是居然跳票了!不过,这两天又看到说正式出来了,就去测试了下,就为大家带来了这篇文章了。

关于介绍这里就不再叙述了,更多请看之前的文章:《Let’s Encrypt:免费 通配符域名证书将于 2018 年 2 月 27 日上线(附:旧版申请方法)》

  • 通配符SSL申请方法

本次教程主要使用之前有提到的脚本工具 Acme.sh 来申请。同样也可以使用官方的工具 cerbot 来申请,不过Acme.sh脚本要方便很多了。

注意,目前测试通配符SSL证书只能使用DNS验证

1. 首先,安装Acme工具登录你的vps服务器,执行命令:curl https://get.acme.sh | sh

或者  wget -O -  https://get.acme.sh | sh

默认当前目录,如果你root登录后直接执行以上命令,会安装在/root目录下,目录名称为:.acme.sh 默认这个目录为隐藏属性700

安装成功如图(国内服务器可能会比较慢点,懂?):

2. 开始申请,并生成TXT记录以供DNS解析验证

进入Acme.sh 目录:cd .acme.sh

执行命令,获取TXT解析记录:./acme.sh  --issue -d .youdomain.com -d youdomain.com --dns (自行替换youdomain.com为你的域名)

这里就默认就用了通配符子域名和顶级域名,即和@ ,如果你还想加一个www ,就再空格后加上-d www.youdomain.com ,既然是通配符,也就无需www了,直接参考使用上面的命令就足够了

同时,这里补充点,你如果只是申请单个域名的话或者比如旧版的支持多个不同域名的DV证书,就可以在后面加上 你想要多个-d以及你的不同域名即可

DNS获取如图:

3. 添加域名的TXT解析记录

去你的域名注册商(如果使用dnspod等第三方解析服务商,请自行去操作),按照上图添加TXT解析记录。

主机名(主机记录):_acme-challenge  记录类型:TXT  记录值:请根据上图步骤填写

注意:你添加了几个-d 就必须做几条解析记录,博主这里测试的时候是两个,所以必须添加两条TXT解析记录

博主这里测试使用的是dnspod.cn的解析服务。

4. 申请并生成SSL证书

执行命令,开始验证TXT记录,并生成SSL证书:./acme.sh  --renew -d *.youdomain.com -d youdomain.com  (自行替换youdomain.com为你的域名)

如果dns验证成功,则会自动申请SSL证书并显示输出证书内容,以及证书和私钥key文件等存放路径。

说明:1. 默认会在.acme.sh安装目录下生成一个以你的域名youdomain.com为名称的目录,包含:SSL证书文件youdomain.com.cer 、 私钥key文件youdomain.com.key 、 CA证书文件ca.cer 、完整证书链文件fullchain.cer(文件文本内容为你的ssl证书+ca证书文件内容,适用于nginx)

2. Let’s Encrypt的通配符证书和以往一样,有效期90天,你可以参考ACME.sh工具说明:https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E 设置自动更新证书

证书示例:

到此,申请教程结束,本文为方便新手就不使用官方的工具 cerbot 来申请了。老手飘过,喜欢折腾的可以自己去试试cerbot申请。

最后,欢迎转载,注明出处即可。