0
点赞
收藏
分享

微信扫一扫

通过.sh文件执行php文件

mm_tang 2022-02-10 阅读 75

.sh文件内容例如musicformat.sh文件

 #!/bin/sh 
 ps -fe|grep run_format_process.php |grep -v grep
 if [ $? -ne 0 ]
 then
     php /home/wwwroot/handleformatmusic/run_format_process.php
 else
     echo "runing....."
 fi

run_format_process.php文件内容

<?php
require 'php-sdk/autoload.php';
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
$accessKey = 'EsmnzabqcE4NVh77MZ7HgzZse77Lg5AjrvaAST-k';
$secretKey = 'xkY-fN4bqtH4-3V4DAH_d51XWAuolUQPTei_ZbzD';
$mysqli = mysqli_connect('rm-4mdthodg.mysql.rds.aliyuncs.com','root','vfineRoot','broad');
// $sql_find_music='SELECT id,excel_import,file_url,UUID,center_id FROM vf_music where UUID!="" and file_url!="" and file_url like "%wav"';
$sql_find_music='SELECT id,excel_import,file_url,UUID,center_id FROM vf_music where UUID!="" and file_url!="" and file_url like "%wav" and id=737';
$result_music = $mysqli->query($sql_find_music);
$one_res=array();
if($result_music!=null){
    $one_res=mysqli_fetch_assoc($result_music);
}
if(!empty($one_res)){
    $id=$one_res['id'];
    $file_url=$one_res['file_url'];
    $UUID=$one_res['UUID'];
    $old_save_path='/home/wwwroot/handleformatmusic/oldmusic/';//原音乐保存项目目录
    $new_save_path='/home/wwwroot/handleformatmusic/newmusic/';//格式转换后音乐保存项目目录
    $fileName =$id.'.wav';
    $fileNewName =$id.'.mp3';
    download($file_url,$old_save_path.$fileName);
    $re=file_exists($old_save_path.$fileName);
    if($re==0){
        echo '音乐id:'.$id.'下载原文件失败';die;
    }else{
        //将wav格式转换为mp3格式
        // $cmd="ffmpeg -i {$old_save_path}{$fileName} {$new_save_path}{$fileNewName}";
        $cmd="ffmpeg -i {$old_save_path}{$fileName} -acodec libmp3lame {$new_save_path}{$fileNewName}";
        $commandOutput = shell_exec($cmd);
        // $commandOutput =exec($cmd);
        echo '格式转换后结果';
        var_dump($commandOutput);die;
        if(empty($commandOutput)){
            //格式转换成功
            //删除原音乐文件
            unlink($old_save_path.$fileName);
             // 初始化签权对象
                $auth = new Auth($accessKey, $secretKey);
                $bucket='broad';
                $qiniuUploadToken=$auth->uploadToken($bucket);
                $uploadManager=new UploadManager();
                $res=$uploadManager->putFile($qiniuUploadToken,$fileNewName,$new_save_path.$fileNewName);
                if(empty($res)){
                    //上传七牛失败
                                $time=time();
                                $desc='上传七牛失败';
                                $sql_insert_fail = "INSERT into vf_music_fail(`music_id`,`created_at`,`desc`) values('{$id}','{$time}','{$desc}')";
                                $insertRes=$mysqli->query($sql_insert_fail);
                                $mysqli->query($sql_insert_fail);
                                echo '音乐id:'.$id.'上传七牛失败';
                }else{
                    //删除转换后文件
                    unlink($new_save_path.$fileNewName);
                    $file_host ='https://brofile.vfinemusic.com/';
                    $format_url=$file_host.$fileNewName;
                    // $sql_up_music="UPDATE `vf_music` SET `file_url` = '{$format_url}', `format_url` ='{$file_url}' WHERE `id` ='{$id}'";
                    $sql_up_music="UPDATE `vf_music` SET `format_url` = '{$format_url}' WHERE `id` ='{$id}'";
                    $upRes=$mysqli->query($sql_up_music);
                    if($upRes>0){
                        echo '音乐id:'.$id.'记录成功';
                    }else{
                        echo '音乐id:'.$id.'记录失败';
                    }
                }
        }
    }
}else{
    echo '暂无需要转换的音乐';die;
}

/**
     * @param $url
     * @param $filename
     * @param int $timeout
     */

    function download($url,$filename,$timeout = 180)
    {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $url);
        $fp = fopen ($filename, 'w+');

        $options = [
            CURLOPT_FOLLOWLOCATION => 1,   //使用自动跳转
            CURLOPT_TIMEOUT        => $timeout,  //超时
            CURLOPT_HEADER         => 0,
            CURLOPT_NOBODY         => 0,
        ];

        curl_setopt($curl, CURLOPT_FILE, $fp);
        curl_setopt_array($curl,$options);

        curl_exec($curl);
        curl_close($curl);
        fclose($fp);

    }

?>

定时任务crontab -e增加musicformat.sh脚本每分钟执行一次

* * * * * su - root -c "(cd /home/wwwroot/handleformatmusic/;sh -x musicformat.sh)" >> /dev/null 2>&1

举报

相关推荐

0 条评论