야간 사이클링 서비스에서 주간으로 변경되었지만 INI를 업데이트 한 후 서버에서 서비스를 바로주기를 원합니다. 나는 'at'명령을 사용하여 INI 파일을 업데이트하는 명령과 함께 보낼 수 있다고 생각했습니다.명령 스크립트의 Linux는 계속 반복됩니다.
문제는 이것입니다. 저는 cronjob에서 사용하는 명령과 동일한 명령을 사용하고 있지만, cronjob에서와 같이 cronjob에서 사용하는 것과 동일한 명령을 사용하고 있습니다. 의사록.
15 04 * * 6 /u01/home/me/scripts/cycleSRVC.sh >/u01/me/tomax/logs/cycleSRVC.log 2>&1
#!/bin/bash
export SRVINI=/u01/home/me/scripts/buildini
SERVERLIST=$SRVINI/serverlist.txt
## Generate the body to send out to each server
touch $SRVINI/body.ini
## copying server.ini commented out as Senthil wants a different copy that he will edit
#cp $SRV_DATA/server.ini $SRVINI/
$SRVINI/generate_body.pl
#rm $SRVINI/server.ini
## scp the body of the ini file to each server
for i in `cat $SERVERLIST` ; do
scp $SRVINI/body.ini $i:$SRVINI/
done
## Call outside perl script to manipulate the files
for i in `cat $SERVERLIST` ; do
ssh $i "source ~/.bash_profile ; cd $SRVINI ; $SRVINI/buildini.pl ; at now + 15 minutes <<< '/u01/home/server/scripts/cycleSRVC.sh > /u01/home/server/logs/cycleSRVC.log 2>&1'"
done
rm $SRVINI/body.ini
cronjob에 '에서'사용
스크립트 나는 'ATQ'를 사용하고 하나의 작업 만이 각 서버에 생성되는 것을 확인했습니다. 이것은 내 스크립트가 ssh를 통해 올바르게 전송되고있는 것처럼 느껴집니다.
주기 스크립트가 cronjob으로 실행될 때 문제가 없으므로 작동하는 것을 알고 있습니다.
'at'명령을 전달하는 여러 가지 방법을 시도해 보았습니다. 모든 서버에서 하나의 작업을 생성했지만 모두 실행되지만 몇 분 후에 다시 시작됩니다. 사이클링, 서비스 중단 및 백업.
진행 방법 상실. 현재 INI에 대한 업데이트를 수행 할 때마다 8 대의 모든 서버에서 서비스를 수동으로 순환합니다. 도움을 많이 주시면 감사하겠습니다. 감사.
는 UPDATE
나는 그것이 실행 된 후 나는 'ATQ'를 할 때이 그냥 실행하고 계속 실행 뜻
>atq
22 2014-12-02 22:01 = usr
으로 표시 것으로 나타났습니다? 이것은 싸이클 스크립트에 오류가있어서 at 명령을 완료하지 못했음을 의미합니까? 그렇다면 왜 그것이 cronjob으로 작동합니까?
최종 업데이트 :
문제를 발견. 그것은 cycleSRVC.sh 스크립트에 있었으며 'at'가 아닙니다. 내 서비스가 다시 시작되면 내가 전화 :
# Restart services
/u01/app/progs/start.sh
sleep 30
내가 배경에 '&'밀어 start.sh를 추가해야합니다. 그렇게하지 않으면 이상한 상태에 놓고 나중에 수면을하게됩니다. 이상한 작은 일로 인해 많은 문제가 발생했습니다.
동일한 좌절감을 가진 다른 사용자를 돕기 위해 여기에 게시하십시오.
이 질문을 '답이 없음'목록에서 제외하려면 답변을 해결책으로 게시하십시오. 또한 : http://stackoverflow.com/help/self-answer –
@Ruud Thanks! 할거야. – bigw8