2010-06-21 3 views
0

5 분마다 폴더를 백업하는 백업 시스템 .....이 있습니다. IP 주소를 사용하여 모든 장치에 백업을 할당 할 수 있습니다. 그러나 일주일에 한 번 또는 한 달에 한 번 장치가 재부팅되고 특정 시간에 매주 또는 매월 백업을 특정 시간 동안 끕니다. 데이터베이스 테이블을 작성하면 우리는 테이블은 다음과 같이 구성되어MySQL에 타이머 만들기

함수에서이 작업을 수행 할 수있는 방법이 있는지 궁금 해서요, 문제가되지 않습니다

Id  BIGINT(20), //Auto Increment Id of the Device 
Name VARCHAR(255), //Name of the device 
Backup TINYINT(1)  //Boolean to represent weather the device is backed or not 

장치

아래 순간 TurnOffBackup이

Id  BIGINT(20), //Id of the Table 
deviceId BIGINT(20), //DeviceId Foriegn Key 
weekDay TINYINT(1), //The week day to turn it off 
monthDate INT(2),  //The month date to turn it off 
fortime BIGINT(20) //The number of seconds to turn the device off for 

드에 대한 선택의 나 악은

SELECT * FROM Device WHERE backup=1 

을 다음과 같이 내가 와나이

SELECT * FROM Device WHERE backup=1 AND TURNBACKUPOFF(Device.Id)=0 

내가 이런 짓을 했을까 또는 내가 오히려 MySQL의 기능보다 코드에서이 일을 considiring되어야하는지 어떤 생각입니다 달성 무엇입니까 백업 된 수하는

답변

0

id INTbackupEnabled BOOLEAN을 사용하고 cron 스크립트 또는 Quartz를 사용하여 백업을 활성화/비활성화 할 수 있습니다. 좀 더 정확히 말하면, 재부팅을 일으키는 동일한 스크립트에서 이것을 업데이트 할 것입니다. 재부팅 시간을 복제하는 것은 쓸데없고 오류가 발생하기 쉽습니다.

+0

그래도 장치는 IP 주소로 정의됩니다. 그리고 백업은 네트워크를 통해 로컬로 실행되지 않으므로 스크립트에 대해서는 확실하지 않습니다. –