Linux Crontab 之每天八点发短信给女朋友
53

都说程序猿没有女朋友=_=,汗,为什么要黑我们帅气的程序猿一族,今天来搞一波用Linux的Crontab定时任务每天给女朋友发短信

在这里我用的是阿里大于的短信SDK,每条短信价格为0.045元,冲个一块钱够用大半月了,美滋滋...

百度阿里大于,进入官网后注册一个账号,然后进入控制台,下载一波SDK,作为一个搞PHP的,当然下载了PHP的SDK,其他SDK也可自行下载。

下载完之后,我们看一下目录结构

这个fileTest文件就是用来发短信的,我们需要编辑它,不过在此之前,需要先在官网控制台创建短信模板,关于创建模板这里就不一一细说了,官网都有教程,创建完之后我们编辑一下这个所谓的fileTest文件,打开文件,写入。

以下是我的,仅供参考==

#!/usr/bin/php -q
<?php
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$date1 = strtotime('2015-12-23');  //把日期转换成时间戳
$date_english = strtotime('2017-06-17');//英语六级时间
$date2 = time(); //取当前时间的时间戳
$nowtime=strftime("%y年-%m月-%d日 ",$date2); //格式化输出日期
$days=round(($date2-$date1)/3600/24);  //四舍五入
$days1=round(($date_english-$date2)/3600/24);//四舍五入求英语考试剩余天数
$week=date("N",time()+3600*24);//判断星期几
// $week=7;
$num=mt_rand(0,9);
$num2=mt_rand(0,9);

for($i=0;$i<2;$i++)
{
    if($i==0)
    {
        $name = '不省心的女朋友';
        $c = new TopClient;
        $c ->appkey='';//写入对应key
        $c ->secretKey='';//写入对应key
        $req = new AlibabaAliqinFcSmsNumSendRequest;
        $req ->setExtend( "" );
        $req ->setSmsType( "normal" );
        $req ->setSmsFreeSignName( "短信签名" );
        $req ->setSmsParam( "{name:'$name',time:'$days',num:'$num'}" );
        $req ->setRecNum( "你女朋友的手机号" );
        $req ->setSmsTemplateCode( "短信模板号" );
        $resp = $c ->execute( $req );
    }
    else 
    {
        $name = '帅气的xxx';
        $c = new TopClient;
        $c ->appkey='';//写入对应key
        $c ->secretKey='';//写入对应key
        $req = new AlibabaAliqinFcSmsNumSendRequest;
        $req ->setExtend( "" );
        $req ->setSmsType( "normal" );
        $req ->setSmsFreeSignName( "短信签名" );
        $req ->setSmsParam( "{name:'$name',time:'$days',num:'$num2'}" );
        $req ->setRecNum( "你的手机" );
        $req ->setSmsTemplateCode( "短信模板号" );
        $resp = $c ->execute( $req );
    }
}
?>

写完之后终端运行一下php fileTest.php,测试一下是否能正常收到短信,如果可以就OK了,接下来我们要将他放到服务器上面去,把整个文件夹拷贝到服务器上,接下来,就要用到Linux的crontab定时任务了

首先,简单介绍一下

通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。

介绍几条命令

crontab -e: 编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

crontab -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

介绍一下crontab的文件格式

分 时 日 月 星期 要运行的命令

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

更多的内容请看http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.html

好了,我们现在只需要会这些就OK。

我们在服务器上运行crontab -e

然后在文件中最后一行加入00 08 * * * php /path/to/你的短信代码文件夹/fileTest.php,前面参数可以自行修改,我这个是每天早上八点,设置完之后,运行一下crontab -l看看是否已保存设置,全都搞定了之后,我们就可以静静等待早上八点的短信了

当然还有很多玩法,就等各位自行发挥了哈哈哈哈!

©Jimmy的技术乐园

微信订阅号

本帖由 Summer 于 1年前 加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 42

首先要有个女朋友:joy:

1年前
Jimmy9876
1年前
Nick

花式秀恩爱?

1年前

请容我:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

1年前

请允许我做个悲伤的表情:joy:

1年前

学会了,请问女朋友是国家发,还是自己找

1年前

666, 不是有对象吗

1年前
CraryPrimitiveMan

楼主女朋友写了一个8:20的自动回复:smile:

1年前

结合Laravel的任务调度和Carbon会更简单

1年前
fatrbaby

准备做一个,不过短信签名感觉怪怪的

1年前
Jimmy9876
1年前

可以使用超哥的easy-sms:smile:

1年前
Jimmy9876

@happygeek 哈哈我去瞅瞅

1年前
MushishiXian

悲从中来.....

1年前

刚开始还稀奇,还不如来六块钱麻辣烫实际。:sweat_smile:

1年前
mostwin

不如每日发个红包实惠:smile:

1年前

然而显示的并不是你的号码

1年前

不错,谁说程序员情商低,哈哈

1年前
Patrick95

最后应当多加一句「回复TD退订」

1年前

好,学会了!就差女朋友了!

1年前

先打翻这碗狗粮

习惯用绝对路径00 08 * * * /usr/bin/php /path/to/你的短信代码文件夹/fileTest.php

1年前

大佬,sdk更新了,麻烦也更新一下文章,萌新想照葫芦画碗!:joy:

1年前
ZEO

没有对象就new一个?

1年前
MrJing

然后女朋友就把手机号拉入黑名单了,哈哈哈

1年前
Jimmy9876

@ZEO 哈哈,那我想多new几个

1年前
Jimmy9876

@钱半仙 好,我去下个最新的sdk看下

1年前
ZEO

@Jimmy9876 多了身体能吃得消么

1年前
SMVirus

万一女朋友回了你的信息但是你不回,岂不是很尴尬

1年前

@SVMirus 那就要上人工智能了

1年前

这个不错,不过已婚那么多年我就不得瑟了.再让她感觉奇怪.

1年前
Destiny

其实这篇文章是来撒狗粮的 :grimacing: ,已经吃了一盆了。

1年前
迈尔丹

还好没有女朋友 要不然又要花式秀恩爱了 哈哈哈哈哈

1年前
bitqiu

这方法好

1年前
Jimmy9876

hhhh,今天七夕?

1年前

哥们你实在是太有才了

1年前

谁来做我女朋友,我做个功能测试~~~

1年前

发短信要钱啦,搞个微信机器人也能实现的 :smile:

1年前

这标题成功吸引了我的注意

1年前
huazi

我也来玩一玩

11个月前

女朋友打开方式好像不对,,,

11个月前

真羡慕你, 还有女朋友。 不过我用赛邮云,价格比阿里还便宜 。

10个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!