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 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM