鍍金池/ 問答/PHP  Linux  網(wǎng)絡(luò)安全/ PHP執(zhí)行shell zip壓縮命令

PHP執(zhí)行shell zip壓縮命令

1.現(xiàn)在有一需求,將上傳的文件在函數(shù)中執(zhí)行shell命令生成加密的zip壓縮文件,沒有做過類似的操作,網(wǎng)上只有一些簡(jiǎn)單的php執(zhí)行shell命令,沒有解決問題

上傳后的文件存放在/Uploads/zip/路徑下,例:'./Uploads/zip/a.txt'
如何在控制器中執(zhí)行方法來生成帶加密的zip文件 './Uploads/zip/a.zip'

現(xiàn)在只有一些簡(jiǎn)單的如system等簡(jiǎn)單shell命令,求大神指導(dǎo)一下。

回答
編輯回答
挽歌

可以寫個(gè)定時(shí)任務(wù)

2017年1月12日 18:21
編輯回答
來守候

簡(jiǎn)單的PHP壓縮方法,沒有實(shí)現(xiàn)對(duì)文件夾的壓縮

<?php

function zipFile($filePath){
    $zipFileName = date('Y-m-d') . '.zip';
    $zipObj      = new ZipArchive();
    $zipObj->open($zipFileName, ZipArchive::CREATE);
    if(is_array($filePath)){
        foreach($filePath as $file){
            $zipObj->addFile($file, basename($file));
        }
    }else{
        $zipObj->addFile($filePath, basename($filePath));
    }
    $zipObj->close();
    return $zipFileName;
}

var_dump(zipFile('./20180208.log'));
var_dump(zipFile([
    './20180207.txt',
    './20180208.txt',
]));

如使用curl來進(jìn)行調(diào)用你控制器,如每天定時(shí)備份日志

  1. crontab -e
  2. 0 1 * * * curl http://xxx.com/bak_log每天凌晨1點(diǎn)備份
  3. :wq

其實(shí)也用不到使用控制器,直接使用linux調(diào)用php腳本就好了,如0 1 * * * /usr/local/php/bin/php /var/www/php/bin/bak_log.php

如有錯(cuò)誤,請(qǐng)指正,謝謝!

2018年3月6日 01:36