마지막 실행이 아직 특정 시간 전이 아닌 경우 즉시 스크립트를 중단하고 종료하려면이 방법을 사용하면 마지막 실행 날짜 및 시간을 저장하는 외부 파일이 필요합니다.
Bash 스크립트 상단에 다음 행을 추가하십시오.
#!/bin/bash
# File that stores the last execution date in plain text:
datefile=/path/to/your/datefile
# Minimum delay between two script executions, in seconds.
seconds=$((60*60*24*3))
# Test if datefile exists and compare the difference between the stored date
# and now with the given minimum delay in seconds.
# Exit with error code 1 if the minimum delay is not exceeded yet.
if test -f "$datefile" ; then
if test "$(($(date "+%s")-$(date -f "$datefile" "+%s")))" -lt "$seconds" ; then
echo "This script may not yet be started again."
exit 1
fi
fi
# Store the current date and time in datefile
date -R > "$datefile"
# Insert your normal script here:
의미있는 가치를 설정하고 필요에 datefile=
따라 가치를 조정하는 것을 잊지 마십시오 seconds=
( $((60*60*24*3))
3 일로 평가).
별도의 파일을 원하지 않으면 스크립트의 수정 타임 스탬프에 마지막 실행 시간을 저장할 수도 있습니다. 그러나 스크립트 파일을 변경하면 3 카운터가 재설정되고 스크립트가 성공적으로 실행 된 것처럼 처리됩니다.
이를 구현하려면 아래의 스 니펫을 스크립트 파일 맨 위에 추가하십시오.
#!/bin/bash
# Minimum delay between two script executions, in seconds.
seconds=$((60*60*24*3))
# Compare the difference between this script's modification time stamp
# and the current date with the given minimum delay in seconds.
# Exit with error code 1 if the minimum delay is not exceeded yet.
if test "$(($(date "+%s")-$(date -r "$0" "+%s")))" -lt "$seconds" ; then
echo "This script may not yet be started again."
exit 1
fi
# Store the current date as modification time stamp of this script file
touch -m -- "$0"
# Insert your normal script here:
다시, 필요에 따라 가치를 조정하는 것을 잊지 마십시오 seconds=
( $((60*60*24*3))
3 일로 평가).
*/3
하지 않습니까? "3 일이 지난 경우": 3 일이 지난 후? 제발 편집 질문을하고 명확하게.