#!/usr/local/bin/php -q <? header("Content-Type: text/html; charset=euc-kr"); include("config.inc.php"); $conn=mysql_connect($cfg_db_host,$cfg_db_user,$cfg_db_pass); mysql_select_db($cfg_db_name);
$query = "select user_no, user_id, passwd, name, email, division, office_addr, phone_no, created, status from user_request where status='W' order by created desc"; $result = mysql_query($query,$conn); $total=mysql_num_rows($result); // echo $err_no.": ".mysql_error()."<BR>";
for($i=0; $i < $total; $i++) { mysql_data_seek($result,$i); $row=mysql_fetch_array($result); if($row[status] == "W") { $userpasswd=crypt($row[passwd]); $system_result = system("/usr/sbin/useradd ".escapeshellarg("$row[user_id]")." -p ".escapeshellarg("$userpasswd"));
$upquery="update user_request set status='A', updated = now() where user_id='$row[user_id]' "; // echo("$upquery"); $upresult = mysql_query($upquery,$conn); } } }
$query_u = "select user_id, passwd, status from user_request where status='U' order by created desc"; $result_u = mysql_query($query_u,$conn); $totla_u = mysql_num_rows($result_u);
for($i=0; $i < $total_u; $i++) { mysql_data_seek($result_u,$i); $row_u=mysql_fetch_array($result_u); if ($row_u[status] == "U") { $userpasswd_u = crypt($row_u[passwd]); $system_result = system("/usr/sbin/usermod -p ".escapeshellarg("$userpasswd_u")." ".escapeshellarg("$row_u[user_id]")); $upquery_u="update user_request set status='A', updated = now() where user_id='$row_u[user_id]'"; $upresult_u = mysql_query($upquery_u,$conn); } } mysql_close($conn); ?>
mysql에 있는 데이터를 기반으로 해서 W면 신규가입자, U면 패스워드 변경자로 분류해서 사용자 정보를 수정할려고 합니다.
위와 같이 php로 쉘스크립을 짜서 crontab에 5분마다 한번씩 실행하도록 등록하였습니다.
위에 있는 if($row[status]=="W") 부분은 잘 실행이 되는데
아래에 있는 if ($row_u[status] == "U") 이 부분이 실행이 되지를 않습니다.
restart도 해봤고, 이리 저리 고쳐도 보고 해봤지만, 되지가 않네요. 몇일째 이걸 붙잡고 있는지 잘 아시는분들 답변 부탁드립니다.
아래는 crontab에 있는 내용입니다.
#crontab -l
00,05,10,15,20,25,30,35,40,45,50,55 * * * * /경로/user_approval_shell.php
|