亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP - 將 crontab 保存到數據庫

PHP - 將 crontab 保存到數據庫

PHP
哈士奇WWW 2023-06-18 16:07:05
我有一個變量,其中包含可以在 linux 中創建的 3 個作業的列表,我想將每一行工作保存在我的數據庫中:$jobs = """0 5 * * 1 tar -zcf /var/backups/home.tgz /home/0 5 * * 1 tar -zcf /var/backups/home.tgz /home/0 5 * * 1 tar -zcf /var/backups/home.tgz /home/"""$array = explode(" ", $jobs);$job = new Job;$job->min = $array[0];$job->hour = $array[1];$job->day_month = $array[2];$job->mes = $array[3];$job->day_week = $array[4];$job->command = "/bin/bash";$job->save();我遇到的問題是我只能設法保存第一行。其他行沒有保存,我認為這是因為它們之間有一個輸入。第二個問題是如何使用正則表達式只獲取我的作業的命令tar -zcf /var/backups/home.tgz / home /,但我想將整個命令保存在一個名為“命令”的表中。
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

將$array包含所有用空格分隔的單詞。


[

?"0",

?"5",

?"*",

?"*",

?"1",

?"tar",

?"-zcf",

?"var/backups/home.tgz",

?"home\n0",

?"5",

?"*",

?"*",

?"1",

?...

]

您需要拆分行并循環遍歷它們。


對于第二個問題;用于array_slice從數組中獲取剩余的項目,然后將它們與implode.


$jobs = "

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

";


$lines = explode("\n", trim($jobs));


foreach ($lines as $line) {

? $array = explode(" ", $line);

? $job = new Job;

? $job->min = $array[0];

? $job->hour = $array[1];

? $job->day_month = $array[2];

? $job->mes = $array[3];

? $job->day_week = $array[4];

? $job->command = implode(" ", array_slice($array, 5));

? $job->save();

}


查看完整回答
反對 回復 2023-06-18
  • 1 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號