|
...
|
...
|
@@ -8,7 +8,10 @@ use App\Models\Devops\ServerConfig; |
|
|
|
use App\Models\Devops\ServersIp;
|
|
|
|
use App\Models\Domain\DomainInfo;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Models\Project\ProjectServerBackup;
|
|
|
|
use App\Services\BatchExportService;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Symfony\Component\Process\Process;
|
|
|
|
|
|
|
|
class Temp extends Command
|
|
|
|
{
|
|
...
|
...
|
@@ -26,8 +29,79 @@ class Temp extends Command |
|
|
|
*/
|
|
|
|
protected $description = '临时脚本';
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 检查不在所属服务器解析上的域名
|
|
|
|
* @author Akun
|
|
|
|
* @date 2024/09/26 10:48
|
|
|
|
*/
|
|
|
|
public function handle()
|
|
|
|
{
|
|
|
|
$server_id = 14;
|
|
|
|
|
|
|
|
$server_ip_model = new ServersIp();
|
|
|
|
|
|
|
|
$server_ip_ids = $server_ip_model->where('servers_id', $server_id)->get()->pluck('id')->toArray();
|
|
|
|
|
|
|
|
$project_list = Project::select(['id', 'serve_id', 'title'])->whereIn('serve_id', $server_ip_ids)->get();
|
|
|
|
|
|
|
|
$domain_model = new DomainInfo();
|
|
|
|
$data = [];
|
|
|
|
foreach ($project_list as $value) {
|
|
|
|
$domain_info = $domain_model->read(['project_id' => $value->id, 'status' => 1], ['id', 'domain']);
|
|
|
|
if (!$domain_info) {
|
|
|
|
//过滤未绑定正式域名的项目
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$domain = $domain_info['domain'];
|
|
|
|
|
|
|
|
$check = $this->check_cname($domain);
|
|
|
|
foreach ($check as $item) {
|
|
|
|
if (strpos($item, 'Address:') !== false) {
|
|
|
|
$ip = trim(str_replace('Address:', '', $item));
|
|
|
|
if (strpos($ip,'#') === false) {
|
|
|
|
$ip_info = $server_ip_model->read(['ip' => $ip]);
|
|
|
|
if ($ip_info === false || $ip_info['servers_id'] != $server_id) {
|
|
|
|
$data[] = [
|
|
|
|
$value->id,
|
|
|
|
$value->title,
|
|
|
|
$domain,
|
|
|
|
$ip,
|
|
|
|
$ip_info ? $ip_info['servers_id'] : '',
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$map = ['项目id', '名称', '域名', 'IP', '服务器ID',];
|
|
|
|
if ($data) {
|
|
|
|
$table = new BatchExportService("美服2项目解析未在当前服务器项目");
|
|
|
|
$file = $table->head($map)->data($data)->save();
|
|
|
|
if (!$file) {
|
|
|
|
$this->output('文件生成失败,请重试');
|
|
|
|
}else{
|
|
|
|
$this->output('export success');
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
$this->output('no data');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public function check_cname($domain)
|
|
|
|
{
|
|
|
|
$process = new Process(['nslookup', '-qt=a', $domain]);
|
|
|
|
$process->run();
|
|
|
|
return explode(PHP_EOL, $process->getOutput());
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 创建所有amp站页面生成任务
|
|
|
|
* @author Akun
|
|
|
|
* @date 2024/09/26 10:48
|
|
|
|
*/
|
|
|
|
public function handle2()
|
|
|
|
{
|
|
|
|
$notify_model = new Notify();
|
|
|
|
$project_model = new Project();
|
|
|
|
$serve_ip_model = new ServersIp();
|
...
|
...
|
|