powershell 에서 동작
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# API 경로 설정 $apiUrl = "http://xinet.kr/vm_replication_insert.php" # JSON 데이터 전송을 위한 시간 정보 가져오기 $currentTimestamp = (Get-Date -Format "yyyy-MM-ddTHH:mm:ss") # Hyper-V VM의 복제 상태 확인 후 데이터베이스로 전송 Get-VM | ForEach-Object { $vm = $_ $replication = Get-VMReplication -VMName $vm.Name -ErrorAction SilentlyContinue if (-not $replication) { # 복제가 설정되지 않은 VM 이름 출력 Write-Output "Replication not configured for VM: $($vm.Name)" # Invoke-RestMethod를 사용하여 POST 요청 보내기 $body = @{ MNAME = $vm.Name } Invoke-RestMethod -Uri $apiUrl -Method Post -Body $body } } |
php 소스 vm_replication_insert.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
<?php // 데이터베이스 연결 설정 $servername = "localhost"; $username = "xinet"; $password = "passssssss"; $database = "xinet"; $conn = new mysqli($servername, $username, $password, $database); // 연결 확인 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // 디버깅용: POST 데이터 확인 //file_put_contents("debug_log.txt", "POST Data: " . print_r($_POST, true), FILE_APPEND); // POST 데이터 확인 if ($_SERVER['REQUEST_METHOD'] === 'POST') { $mname = isset($_POST['MNAME']) ? $_POST['MNAME'] : null; $status = isset($_POST['STATUS']) ? $_POST['STATUS'] : null; if ($mname && $status) { // 데이터 삽입 쿼리 $stmt = $conn->prepare("INSERT INTO vm_replication_check (m_name, m_status, m_timestamp) VALUES (?, ?, NOW())"); $stmt->bind_param("ss", $mname, $status); if ($stmt->execute()) { echo "Success"; } else { echo "Error: " . $stmt->error; file_put_contents("debug_log.txt", "DB Error: " . $stmt->error, FILE_APPEND); } $stmt->close(); } else { echo "Error: Missing MNAME or STATUS"; file_put_contents("debug_log.txt", "Error: Missing MNAME or STATUS\n", FILE_APPEND); } } else { echo "Error: Invalid request method"; file_put_contents("debug_log.txt", "Error: Invalid request method\n", FILE_APPEND); } $conn->close(); ?> |