作者 刘锟

update

@@ -31,14 +31,72 @@ class Temp extends Command @@ -31,14 +31,72 @@ class Temp extends Command
31 * 31 *
32 * @var string 32 * @var string
33 */ 33 */
34 - protected $description = '临时脚本'; 34 + protected $description = '临时脚本(akun)';
  35 +
  36 + public function handle()
  37 + {
  38 + $this->relation_all_keywords();
  39 + }
  40 +
  41 + /**
  42 + * 转移灾备服务器后,判断项目是否正常访问
  43 + * @author Akun
  44 + * @date 2024/12/11 10:15
  45 + */
  46 + public function check_zb_complete_project_site()
  47 + {
  48 + $server_id = 15;
  49 + $server_name = '美服1';
  50 +
  51 + $server_ip_model = new ServersIp();
  52 +
  53 + $server_ip_ids = $server_ip_model->where('servers_id', $server_id)->get()->pluck('id')->toArray();
  54 +
  55 + $project_list = Project::select(['id', 'serve_id', 'title'])->whereIn('serve_id', $server_ip_ids)->get();
  56 +
  57 + $domain_model = new DomainInfo();
  58 + $data = [];
  59 + foreach ($project_list as $value) {
  60 + $domain_info = $domain_model->read(['project_id' => $value->id, 'status' => 1], ['id', 'domain']);
  61 + if (!$domain_info) {
  62 + //过滤未绑定正式域名的项目
  63 + continue;
  64 + }
  65 + $domain = $domain_info['domain'];
  66 +
  67 + $check = dns_get_record($domain, DNS_A);
  68 + $ip = $check[0]['ip'] ?? '';
  69 + $host = $check[0]['host'] ?? '';
  70 + $code = check_curl_status($domain);
  71 + $data[] = [
  72 + $value->id,
  73 + $value->title,
  74 + $domain,
  75 + $host,
  76 + $ip,
  77 + $code
  78 + ];
  79 + }
  80 + $map = ['项目id', '名称', '域名', 'CNAME', 'IP', '站点状态'];
  81 + if ($data) {
  82 + $table = new BatchExportService($server_name . '站点解析情况及访问状态');
  83 + $file = $table->head($map)->data($data)->save();
  84 + if (!$file) {
  85 + $this->output('文件生成失败,请重试');
  86 + } else {
  87 + $this->output('export success');
  88 + }
  89 + } else {
  90 + $this->output('no data');
  91 + }
  92 + }
35 93
36 /** 94 /**
37 * 检查服务器上没有解析cname的项目 95 * 检查服务器上没有解析cname的项目
38 * @author Akun 96 * @author Akun
39 * @date 2024/12/11 10:15 97 * @date 2024/12/11 10:15
40 */ 98 */
41 - public function handle7() 99 + public function check_no_cname_projects()
42 { 100 {
43 $server_id = 15; 101 $server_id = 15;
44 $server_name = '美服1'; 102 $server_name = '美服1';
@@ -90,7 +148,7 @@ class Temp extends Command @@ -90,7 +148,7 @@ class Temp extends Command
90 * @author Akun 148 * @author Akun
91 * @date 2024/12/10 10:43 149 * @date 2024/12/10 10:43
92 */ 150 */
93 - public function handle6() 151 + public function wx_tg_projects()
94 { 152 {
95 //获取所有组内推广项目 153 //获取所有组内推广项目
96 $leader_mid = 16; 154 $leader_mid = 16;
@@ -178,9 +236,9 @@ class Temp extends Command @@ -178,9 +236,9 @@ class Temp extends Command
178 * @author Akun 236 * @author Akun
179 * @date 2024/11/18 15:07 237 * @date 2024/11/18 15:07
180 */ 238 */
181 - public function handle() 239 + public function relation_all_keywords()
182 { 240 {
183 - $projects = Project::where('id', 874)->select(['id'])->orderBy('id', 'asc')->get(); 241 + $projects = Project::select(['id'])->orderBy('id', 'asc')->get();
184 foreach ($projects as $project) { 242 foreach ($projects as $project) {
185 ProjectServer::useProject($project->id); 243 ProjectServer::useProject($project->id);
186 244
@@ -204,7 +262,7 @@ class Temp extends Command @@ -204,7 +262,7 @@ class Temp extends Command
204 * @author Akun 262 * @author Akun
205 * @date 2024/10/30 15:37 263 * @date 2024/10/30 15:37
206 */ 264 */
207 - public function handle4() 265 + public function keywords_first_word()
208 { 266 {
209 $projects = Project::select(['id'])->orderBy('id', 'asc')->get(); 267 $projects = Project::select(['id'])->orderBy('id', 'asc')->get();
210 foreach ($projects as $project) { 268 foreach ($projects as $project) {
@@ -279,7 +337,7 @@ class Temp extends Command @@ -279,7 +337,7 @@ class Temp extends Command
279 * @author Akun 337 * @author Akun
280 * @date 2024/09/30 17:01 338 * @date 2024/09/30 17:01
281 */ 339 */
282 - public function handle3() 340 + public function get_all_projects_by_server()
283 { 341 {
284 $server_id = 1; 342 $server_id = 1;
285 343
@@ -325,7 +383,7 @@ class Temp extends Command @@ -325,7 +383,7 @@ class Temp extends Command
325 * @author Akun 383 * @author Akun
326 * @date 2024/09/26 10:48 384 * @date 2024/09/26 10:48
327 */ 385 */
328 - public function handle2() 386 + public function check_no_server_projects()
329 { 387 {
330 $server_id = 15; 388 $server_id = 15;
331 389
@@ -377,7 +435,7 @@ class Temp extends Command @@ -377,7 +435,7 @@ class Temp extends Command
377 * @author Akun 435 * @author Akun
378 * @date 2024/09/26 10:48 436 * @date 2024/09/26 10:48
379 */ 437 */
380 - public function handle1() 438 + public function create_all_amp_notify()
381 { 439 {
382 $notify_model = new Notify(); 440 $notify_model = new Notify();
383 $project_model = new Project(); 441 $project_model = new Project();
@@ -1001,6 +1001,40 @@ if (!function_exists('check_domain_record')) { @@ -1001,6 +1001,40 @@ if (!function_exists('check_domain_record')) {
1001 } 1001 }
1002 } 1002 }
1003 1003
  1004 +if (!function_exists('check_curl_status')) {
  1005 + /**
  1006 + * 获取域名访问状态码
  1007 + * @param $url
  1008 + * @return int
  1009 + * @author Akun
  1010 + * @date 2024/12/12 15:52
  1011 + */
  1012 + function check_curl_status($url){
  1013 + $header = array(
  1014 + 'Expect:',
  1015 + 'Content-Type: application/json; charset=utf-8'
  1016 + );
  1017 + $ch = curl_init($url);
  1018 + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  1019 + curl_setopt($ch, CURLOPT_HEADER, false);
  1020 + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  1021 + curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246');
  1022 + curl_setopt($ch, CURLOPT_AUTOREFERER, true);
  1023 + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
  1024 + curl_setopt($ch, CURLOPT_TIMEOUT, 120);
  1025 + curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
  1026 + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  1027 + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  1028 + curl_setopt($ch, CURLOPT_SSLVERSION, 'all');
  1029 + curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  1030 + curl_exec($ch);
  1031 + $http_code = curl_getinfo($ch,CURLINFO_HTTP_CODE);
  1032 + curl_close($ch);
  1033 +
  1034 + return $http_code;
  1035 + }
  1036 +}
  1037 +
1004 /** 1038 /**
1005 * 邮箱脱敏 1039 * 邮箱脱敏
1006 * @author zbj 1040 * @author zbj