서버가 있거나 컴퓨터를 끄지 않으면 Cron을 사용하는 것이 좋습니다. 그러나 스크립트를 실행하도록 설정 한 정확한 순간에 노트북이 잠들면 어떻게 될까요? 재부팅해야한다면 어떻게해야합니까? 컴퓨터가 실제로 실행 중이지만 백업 프로세스 또는 기타 집중 스크립트를 실행하기 전에 뚜껑이 닫힌 상태에서 유휴 상태가 될 때까지 기다리겠습니까?
Lazycron과 함께, "당신의 컴퓨터는 결국 그것을 돌아 다닐 것입니다." Lazycron은 삶에 더 부족한 접근 방식을 취합니다. 물론, 그것은 일을 끝낼 것이지만 서두르지 않습니다. 실행 시간을 설정하지 않고 범위를 설정합니다. 더 좋은 점은 스크립트가 실행되고 오류가 발생할 때마다 LC는 조용히 실패하지 않고 무언가 잘못되었다는 것을 알려주는 메시지를 나타냅니다.
실행할 프로그램을 사용하여 Schedule.txt 파일을 편집합니다.
"시간"은 스크립트를 실행할 때 창입니다. 쉼표로 여러 번의 창을 분리 할 수 있습니다. 예를 들면 : 1-3am, 2pm-4pm, 11:30-11:34 이 숫자를 가지고 놀십시오. 시스템은 매우 유연합니다. 내 스크립트를 실행하면 다음 프로그램에 사용할 수있는 다음 시간을 표시하여 예상 한 작업을 수행 할 수 있습니다.
예를 들어, 컴퓨터가 온라인 상태 일 때만 실행하려는 백업 스크립트가 있지만 다른 방법으로 사용하지 않는다고 가정 해 봅시다. schedule.txt 아래에서 시간 범위를 오후 8시 30 분에서 오전 3시 사이에 설정했습니다. 주파수는 * 로 설정되어 해당 기간 동안 한 번만 실행됩니다. 날짜는 sat-sun 과 일요일에만 실행됩니다. 요구 사항 필드에 따르면 컴퓨터는 5 분 이상, 플러그를 꽂고 온라인으로 유휴해야한다고 말합니다. 그렇지 않으면 스크립트가 해당 조건이 충족 될 때까지 기다립니다.
다음과 같은 다양한 요구 사항을 설정할 수도 있습니다. 컴퓨터는 일정 시간 동안 유휴 상태 여야하고, 바쁘고, 플러그인, 온라인, 뚜껑이 닫혀 있어야합니다. [요구 사항] (# 요구 사항) 섹션에서 아래 전체 옵션을 참조하십시오.
#Time Frequency Date Requirements Script Path
8:30pm-3am * sat-sun idle 5m, plugged, online daily_backup_script_path_goes_here.sh
* 1h * busy 10, idle 5 my_hourly_backup_script.py
2pm-8pm 1h elapsed * online a_daily_script.py
-5pm * m-f random 8h A_surprise_everyday.py
4-6pm * 2nd Thursday busy 5m mpg123 'Libera - Going Home.mp3'
* * March 14 * pi_day.py
* * 1st-2nd * zenity --info --text="Monthly todo"
* * * start 1 run_at_startup.sh
스크립트를 실행할 수있는 경우.
- `1-3am, 2pm - 4pm` (You can have multiple windows separated with commas.)
- `-5pm` will run until 5pm everyday
- A `*` will run 24 hours a day.
Play around with these numbers, the system is very flexible. When you run my script it will show you the next time window available for each program.
프로그램이 얼마나 자주 실행되는지. m = 분, h = 시간 등. 내 스크립트는 대부분의 자연어 입력을 허용해야합니다.
- 1h will run every hour
- 1h elapsed will only count time when the computer is actively in use by user.
- A `0` will run as often as possible.
- A `*` will only run once a day.
일반적으로 특정 요일에 달리기 위해 제한하기 위해 범위로 설정 : 예 : 예 : MF, 매번 목요일마다
- `m-f` will run monday through friday
- `2nd Thursday` will run every 2nd thursday of the month
- `1-2nd` will run on the first two days of the month
- A `*` will run on any day of the year.
스크립트가 실행되는 데 필요한 추가 요구 사항의 쉼표로 분리 된 목록. 시간, 빈도 및 날짜와 마찬가지로 대부분의 자연어 입력이 허용됩니다. 사용 가능한 것은 다음과 같습니다.
| 시간 요구 사항 | |
idle | 컴퓨터가 유휴 상태였습니다. |
busy | 컴퓨터가 지속적으로 바빴습니다 |
elapsed | 총 시간은 컴퓨터를 사용해야합니다. |
today | 오늘 총 시간 컴퓨터를 사용해야합니다. |
| 컴퓨터 상태 요구 사항 | |
online | 인터넷에 액세스 할 수 있습니까? |
closed/open | 뚜껑을 닫아야합니다. |
(un)plugged | 전원 코드를 부착해야합니다. |
lowbatt | 배터리 백분율이 특정 백분율로 떨어지면 실행하십시오. |
minbatt | 배터리 백분율이 특정 백분율 이상인 경우 실행하십시오. |
disk | KB/S로 표현 된 최대 전류 디스크 사용 프로세스 |
cpu | 결합 된 CPU 전력의 백분율로 표현 된 최대의 CPU 사용 시작 프로세스. |
network | KB/S로 표시되는 최대 현재 네트워크 사용 시작 프로세스 |
ssid | 실행하기 전에 Wi -Fi 네트워크 이름이 일치하는지 확인하십시오. |
| 언제, 얼마나 자주 | |
start | 시작시 여러 번만 실행하십시오. 0 = 무한 |
skip | 스타트 업 에서이 프로세스를 x 번도 건너 뜁니다. |
max | 스크립트를 실행할 최대 횟수. |
reps | 하루 또는 시간에 따라 여러 번만 실행하십시오. |
delay | 스크립트를 시작하기 전에 지연됩니다 |
suspend | 스크립트에서 스크립트를 실행합니다 (-idle 옵션이있는 스크립트로 변형 된 경우) |
wake | 일시 중단 후 웨이크에서 스크립트를 실행하십시오 |
random | 스크립트는 무작위로 실행됩니다 예 : 임의의 8 시간은 8 시간마다 (평균적으로) 실행됩니다. 언젠가는 5 번 이상 실행될 수 있으며, 다른 날은 전혀 그렇지 않습니다. 그것이 무작위성이 작동하는 방식입니다. |
| 루프 | |
loop | 스크립트가 끝날 때이 스크립트를 여러 번 실행하십시오. 루프 0 = 루프 영원히. 담당자에게는 계산되지 않습니다. |
retry | 실패로 여러 번 다시 시도하십시오. 담당자에게는 계산되지 않습니다. |
loopdelay | 루프 또는 재 시도 후 오랫동안 지연하십시오. 기본값 = 60 초를 설정하지 않으면 60 초입니다. |
delaymult | 각 루프 후 지연을 곱하십시오. 기본값으로 2 (레트리 모드의 모든 루프를 이중 지연) |
| 환경 | |
nice | Unix 좋은 가치로 스크립트를 시작하십시오. 더 높은 값은 다른 프로세스에 더 좋습니다 |
nologs | 스크립트가 코드 0 반환하는 경우 로그 삭제 (모두 괜찮아) |
noerrs | 스크립트 오류에 대해 경고하지 마십시오 |
localdir | 동일한 디렉토리에서 스크립트를 실행하십시오. |
timeout | 스크립트를 죽이기 전에 실행할 시간입니다. |
environs | 시작하기 전에 환경 변수를 설정하십시오. 형식 : environs VAL1=TEXT $ VAL2=TEXT ($). |
shell | subprocess.run(shell=True)명령에서 고급 쉘 기능에 액세스 할 수 있지만 보안 위험으로 간주됩니다. |
알림 : 채우지 않아도되는 필드에 사용 * . 5 개의 필드는 모두 1 개 이상의 문자를 포함해야합니다.
컴퓨터가 유휴 상태 인 초 수를 얻으려면 xprintidle 필요합니다.
cpu , network 또는 disk 플래그의 시스템 모니터링 유틸리티를 사용합니다. python3 -m pip install psutil psutil 사용하여 psutil을 설치하십시오
일정이 올바르게 작동하는지 확실하지 않습니까? -테스트 옵션으로 프로그램을 실행하거나 각 스크립트 경로 전에 ## 넣어서 무엇을하는지 표시하십시오. 로그는 /tmp /lazycron_logs에 보관됩니다
--idle (minutes) -꽂는 동안 몇 분 후에 잠을 자게됩니다. --idlebatt (minutes) -배터리 전원으로 몇 분 후에 잠을 자십시오.
Requirements 목록에 suspend 옵션이있는 프로그램을 추가하십시오. -LC는 컴퓨터를 잠들기 전에 중단 프로그램을 실행 한 후 1주기를 기다립니다. 이 기간에 컴퓨터가 활동을 표시하면 수면이 취소됩니다. 내 스크립트는 하루에 한 번만 실행됩니다!
0 아닌지 확인하십시오 *Xprintidle은 Diplay를 열 수 없었습니다
crontab 또는 기타 비 GUI 터미널에서 Lazycron을 시작하는 경우 먼저 디스플레이를 내보내야합니다. 예를 들어, export DISPLAY=:0ssh 통해 실행되는 경우 -x 플래그를 사용하여 세션에 첨부해야합니다. ssh -X /etc/ssh/sshd_config 에서 X11Forwarding yes 사용하여 x11 전달을 설정하고 ssh를 다시 시작하십시오.프로그램이 실패하면 데스크탑에서 메시지를 받으려면 어떻게해야합니까?
PIP에서 PYQT6 Python 모듈 설치 (선호) : sudo pip install PyQt6
또는 제 3 자 앱 설치 : zenity sudo apt install zenity
숫자 목록은 프로그램이 시작될 때마다 --verbose = 2 mode?
런타임의 역사입니다. UNIX 타임 스탬프를 녹음하는 대신 로그가 시작된 이후 몇 초를 기록하는 것이 더 컴팩트 한 것으로 나타났습니다.
로그 시작시 타임 스탬프 에이 숫자를 추가하여 각 프로그램이 시작될 때의 정확한 Unix 타임 스탬프를 얻으십시오.
미래에 구현 될 수있는 아이디어. 이 아이디어 또는 다른 아이디어가 귀하에게 관심이있는 경우 태그 "제안"이있는 경우 버그 보고서를 제출하십시오.
요구 사항에 대한 부울 논리 : idle 2m OR today 3h
AND 같이 실행됩니다.Mac / Windows 지원
새로운 요구 사항 필드,보고 싶은 것을 알려주세요!