Linux服务器上crontab定时执行脚本文件

1、安装crontabs
linux应该都有crontab,没有的话可以安装一下:
yum install  crontabs

安装完以后开启crontab服务
service crond start
 
用以下的方法启动、关闭这个cron服务:
service crond start //启动服务 
service crond stop //关闭服务 
service crond restart //重启服务 
service crond reload //重新载入配置
service crond status //查看crontab服务状态
service crond start //手动启动crontab服务
 
查看crontab服务是否已设置为开机启动,执行命令:ntsysv (若不存在则执行yum install ntsysv)

 2、编写shell和要执行的脚本文件

task.sh:
# @file == 服务器要执行的任务文件路径
# /usr/bin/php == 服务器中php目录
# 在Linux环境下 对该sh脚本 进入vi后执行  :set ff = unix 再 :wq退出
# 修改脚本的文件格式,兼容问题
# 给该脚本777权限
# 执行命令crontab -e 添加任务 */1 * * * *  root(用户名)  命令(脚本)路径
#!/bin/bash
file='/var/www/html/script/task/cronJob-auto-confirm-recharge.php'
/usr/bin/php  $file
日后可将所有定时任务都放到task文件夹中:
#!/bin/bash
path='/var/www/html/script/task/'
filelist=`ls $path/*.php`
for file in $filelist
do
    /usr/bin/php  $file
done
cronJob-auto-confirm-recharge.php:
// 加载基础文件
include dirname(dirname(__FILE__)).'/loadThink.php';

try {

    /* @var $walletReChargeModel \app\common\model\WalletReCharge */
    $walletReChargeModel = model('common/walletReCharge');

    $walletReChargeModel->startTrans();

    // 更新充值列表
    $walletReChargeModel->refreshList();

    // 确认充值
    $walletReChargeModel->where(['is_settled' => 0, 'status' => 1])->column('id');
    $walletReChargeModel->confirmReCharge($ids);

    htcLog('CronJob Executed At:'.now(), 'cronJob.log');

    $walletReChargeModel->commit();

}catch (Exception $e) {
    htcLog($e->getMessage(), 'cronJob.log');
    $walletReChargeModel->rollback();
}
3、添加相应的任务
在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
分钟   小时     日    月   星期    用户   命令
 *      *       *     *    *      用户    命令(脚本)路径
每一分钟执行一次则:
 */1      *       *     *    *   用户  命令(脚本)路径

直接执行php脚本文件的话  * * * * * php fileName.php 

猜你喜欢

转载自www.cnblogs.com/jongty/p/11672309.html