심볼릭 링크 일 때 디렉토리에서 데이터를로드하는 데몬이 있습니다. 주기적으로 새 데이터가 생성되고 심볼릭 링크가 업데이트됩니다. 현재의 심볼릭 링크가 이전의 심볼릭 링크와 동일한 지 (데몬이 시작되었는지) 확인하고 그렇지 않은 경우 데몬을 다시 시작하는지 확인하는 bash 스크립트가 필요합니다. 나의 현재의 생각은 다음과 같습니다심볼릭 링크가 변경되었는지 확인하십시오.
if [[ ! -e $old_dir || $(readlink "$data_dir") == $(readlink "$old_dir") ]];
then
echo restart
...
ln "$(readlink "$data_dir")" "$old_dir" -sf
else
echo no restart
fi
추상 요구 사항은 다음과 같습니다 스크립트가 실행될 때마다, 그것은 주어진 경로에 대한 심볼릭 링크가 지금은 마지막 시간보다 다른 무언가를 가리키는 지 확인해야하며 만약 그렇다면 뭔가해라. (대체 경로의 데이터가 변경되었는지 확인하는 것입니다하지만 난 어떤 청소기되는 것을 볼 수 없습니다.) 내 질문 :
- 이 좋은 방법인가?
- 누구에게 더 좋은 아이디어가 있습니까?
$old_dir
은 무엇을 사용해야합니까? 심볼릭 링크는 어디에 두어야합니까?
왜이 작업을 수행 하시겠습니까? symlink 뒤에있는 아이디어는 최종 목적지를 추적 할 필요가 없다는 것입니다. '[[]] 안에는 큰 따옴표를 사용할 필요가 없지만'ln' 명령과 함께 사용하는 것이 좋습니다. 백틱 대신'$()'를 사용하는 것이 바람직합니다. '[[]]'를 사용할 때는 -ne 대신'! ='를 사용해야합니다. –
@Dennis, 수정하여 제안 된 변경 사항을 적용했습니다. – BCS