- 제한적인 iptables 규칙을 추가하는 bash 스크립트를 만드십시오.
- 이 스크립트를 매월 cron에 넣으십시오.
- bash 스크립트 내에서 파일
~/do_not_block_friends
이 존재하고 수정 시간이 월 기간 ( stat -c %y filename
) 내에있는 경우 스크립트를 실행하지 마십시오.
- 그들이 지불하면 당신이 할
touch ~/do_not_block_friends
.
스크립트가 실행되고 do_not_block_friends
수정 된 것을 확인하여 iptables 명령을 실행하지 않습니다.
그들이 당신을 지불하지 않으면-스크립트는 그들을 차단합니다.
그들이 지불 한 후에는 다른 준비된 스크립트를 실행하여 잠금 해제합니다.
이것은 세부 사항이없는 일반적인 계획이지만 나머지 계획을 세우는 것이 어렵다고 생각하지 않습니다.
편집 :
이러한 스크립트를 작성하는 더 간단한 방법은 다음과 같습니다.
#!/bin/bash
count=`find ~ -maxdepth 1 -type f -name do_not_block_friends -mtime -31 | wc -l`
if [ "$count" -eq 1 ]; then
# Friends have paid. Do nothing;
else
# Friends have not paid. Run iptables command;
fi
find
다음 옵션과 함께 명령을 사용합니다 .
maxdepth 1
-재귀 검색하지 마십시오
type f
-파일 검색
name
-이 이름으로 검색
mtime -31
-31 일 전에 수정 된 파일 찾기
wc -l
명령으로 생성 된 행 수를 계산합니다. 그것은 될 것입니다 0
친구가 지불하지 않은 (아무것도 찾을 수 없습니다)하고있을 것입니다 경우 1
친구 지불했고, 우리가했던 경우 touch
제어 파일을.
이 스크립트는 한 달 동안의 일수를 계산하지 않으며 기본값은 31입니다. 상용 청구 시스템을 구축하지 않았기 때문에 괜찮다고 생각하지만 bash로 계산할 수도 있습니다.