diff --git a/api/get_user_cookie.php b/api/get_user_cookie.php index fb54a41..dc005d8 100644 --- a/api/get_user_cookie.php +++ b/api/get_user_cookie.php @@ -9,4 +9,6 @@ if(!file_exists($cookie_path)){ exit(''); } $str_cookie = file_get_contents($cookie_path); +//删除cookie文件 +unlink($cookie_path); exit($str_cookie); \ No newline at end of file diff --git a/api/send_user.php b/api/send_user.php new file mode 100644 index 0000000..b0acee5 --- /dev/null +++ b/api/send_user.php @@ -0,0 +1,28 @@ +getCrossCheckAccount(); - // 测试数据 - // $list[] = [ - // 'user' => 'mayi001', - // 'passwd' => 'Eg98*!f@42', - // 'ext_info' => 'crossref-26027,zzz', - // ]; + //测试数据 + $list[] = [ + 'user' => 'mayi001', + 'passwd' => 'Eg98*!f@42', + 'ext_info' => 'crossref-26027,zzz', + ]; if (empty($list)){ throw new Exception('获取crosscheck账号列表为空'); @@ -47,6 +47,12 @@ try{ chgrp($cookie_path, 'nobody'); chmod($cookie_path, 0777); } + $capture_path = __DIR__ . '/../cookie_file/screen_shots/'; + if (!is_dir($capture_path)) { + mkdir($capture_path, 0777, true); + chown($capture_path, 'nobody'); + chgrp($capture_path, 'nobody'); + } // 检测账号cookie是否有效 $res = $obj->islogin(); if ($res) { @@ -61,7 +67,11 @@ try{ // 执行java登录脚本,获取脚本运行的时间 $start_time = time(true); - $cmd = 'java -jar /datacenter/java/crossrefLogin.jar "' . $user.'" "'.$passwd.'" "'.$cookie_path.'"'; + //$cmd = 'java -jar /datacenter/java/crossrefLogin.jar "' . $user.'" "'.$passwd.'" "'.$cookie_path.'"'; + $cmd = "java -jar /datacenter/java/crossrefLogin_v2.jar -u '{$user}' -p '{$passwd}' -f '{$cookie_path}' -t '{$tenant}' -capture_path '{$capture_path}'"; + echo $cmd.PHP_EOL; + //java -jar crossref-1.0-SNAPSHOT.jar -u '2105444612@qq.com' -p '038300asz_A' -f './mayi2_cookie.txt' -capture + $console_str = trim(shell_exec($cmd)); // 计算脚本运行时间 @@ -76,15 +86,15 @@ try{ $str_log = date('Y-m-d H:i:s')."|登录失败|".$user."|运行时间:".$run_time_str; file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); - }else{ + }else{ // 登录成功 // 记录日志 $str_log = date('Y-m-d H:i:s')."|登录成功|".$user."|运行时间:".$run_time_str; file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); - // 推送cookie到正式服务器 } system("pkill -9 chrome"); } } + sleep(5); // 删除锁文件 unlink($lock_file); diff --git a/crontab/crosscheck_auto_shell_v2.php b/crontab/crosscheck_auto_shell_v2.php new file mode 100644 index 0000000..8281e7d --- /dev/null +++ b/crontab/crosscheck_auto_shell_v2.php @@ -0,0 +1,114 @@ +=5){ + // 记录日志 + $str_log = date('Y-m-d H:i:s')."|已登录失败{$arr_user_info[0]}次|".$user; + file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); + continue; + } + } + // 获得文件内容 + $param = file_get_contents($need_login_file); + + // 获得crosscheck账号密码 + $arr_user_info = explode("\n", $param); + $user = ltrim($arr_user_info[0]); + $passwd = ltrim($arr_user_info[1]); + $tenant = ltrim($arr_user_info[2]); + + // 账号cookie文件路径 + $cookie_path = __DIR__ . '/../cookie_file/'.$user.'.txt'; + $obj->cookie_path = $cookie_path ; + if (file_exists($cookie_path)) { + chown($cookie_path, 'nobody'); + chgrp($cookie_path, 'nobody'); + chmod($cookie_path, 0777); + } + + $capture_path = __DIR__ . '/../cookie_file/screen_shots/'; + if (!is_dir($capture_path)) { + mkdir($capture_path, 0777, true); + chown($capture_path, 'nobody'); + chgrp($capture_path, 'nobody'); + } + + + // 执行java登录脚本,获取脚本运行的时间 + $start_time = time(true); + $cmd = "java -jar /datacenter/java/crossrefLogin_v2.jar -u '{$user}' -p '{$passwd}' -f '{$cookie_path}' -t '{$tenant}' -capture_path '{$capture_path}' -only_login"; + echo $cmd.PHP_EOL; + //java -jar crossref-1.0-SNAPSHOT.jar -u '2105444612@qq.com' -p '038300asz_A' -f './mayi2_cookie.txt' -capture + + $console_str = trim(shell_exec($cmd)); + + // 计算脚本运行时间 + $end_time = time(true); + $run_time = $end_time - $start_time; + $run_time_str = date('i:s', $run_time); + $str_log = date('Y-m-d H:i:s')."|登录信息|".$console_str."|运行时间:".$run_time_str; + file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); + // 判断登录是否成功 + if (strpos($console_str, '登录成功') === false) { // 登录失败 + // 记录日志 + $str_log = date('Y-m-d H:i:s')."|登录失败|".$user."|运行时间:".$run_time_str; + file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); + + // 写入错误登录文件 + $fail_info = $arr_user_info[0]+1; + file_put_contents($fail_login_file, $fail_info); + + }else{ + // 记录日志 + $str_log = date('Y-m-d H:i:s')."|登录成功|".$user."|运行时间:".$run_time_str; + file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); + // 删除需要登录的账号文件 + unlink($need_login_file); + } + system("pkill -9 chrome"); + sleep(60*4); + } + + // 删除锁文件 + unlink($lock_file); + + +}catch(Exception $e){ + $str_log = date('Y-m-d H:i:s')."|异常退出|异常信息:".$e->getMessage(); + file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); + // 删除锁文件 + unlink($lock_file); +} \ No newline at end of file