Crontab을 사용하여 특정 날짜에 Linux 시작 시에만 파일을 여는 방법은 무엇입니까?

Crontab을 사용하여 특정 날짜에 Linux 시작 시에만 파일을 여는 방법은 무엇입니까?
matthew@matthew-pc:~$ crontab -l 
[...]
@reboot 1 5 * sleep 10s && export DISPLAY=:0 && xdg-open ~/@/Testing.jpg

5월 1일 Linux를 시작할 때 "Testing.jpg"가 열리지 않았습니다.
Linux가 특정 날짜(예: 5월 2일)에 시작될 때 Crontab을 사용하여 파일을 열려면 어떻게 해야 합니까?

답변1

@reboot- 와 일정을 혼합 할 수 없으며 cron이는 지원되지 않습니다.

특정 날짜에 Linux가 부팅될 때 파일을 열려면 다음을 수행하십시오.

  1. 날짜가 일치하는지(예: 5월 2일) 확인하는 스크립트(chkdate.sh)를 작성하세요.

  2. @reboot사양을 사용하여 cron실행chkdate.sh

[편집: re chkdate.sh, 특정 날짜에 대해 오늘 날짜를 확인하는 스크립트]:

당신은bash이 작업을 수행하기 위한 스크립트입니다. date의 함수는 bash오늘 날짜를 반환합니다. 이를 통해 특정 날짜에 대해 오늘 날짜를 테스트하고 필요한 조치를 취하기만 하면 됩니다. 이 문제를 해결하는 한 가지 방법은 다음과 같습니다.

참고: 저는 Debian 기반 Linux 배포판을 사용하므로 다음은 이를 반영합니다. 귀하의 시스템은 다를 수 있습니다.

  1. 이 기능을 사용하려면 date: "터미널 창"을 열거나 시스템에 명령 프롬프트를 표시하세요. 명령 프롬프트( $제 경우)에 다음을 입력합니다 date +%Y-%m-%d.
$ date +%Y-%m-%d
2019-05-02
$
  1. date원하는 형식을 지정하십시오 . date출력은 다양한 형식으로 제공될 수 있습니다. 위의 예에서 형식은 "년-월-일"입니다. 월과 일에만 관심이 있는 경우 명령은 다음과 같습니다 date +%m-%d.
$ date +%m-%d
05-02
$
  1. 어떤 형식이 필요하든 시스템 문서를 사용하는 방법을 배워야 합니다. 필요한 형식으로 출력을 지시하는 방법을 이해하려면 date해당 설명서를 읽어야 합니다.
$ man date
...
q
$

단일 문자로 페이지가 q닫힙니다 .man

  1. date출력 형식을 결정한 후에는 스크립트 작성을 시작할 수 있습니다 chkdate.sh. 이 파일을 생성하고 사용하기 쉬운 텍스트 편집기에서 열어 보겠습니다.
$ nano ~/chkdate.sh
...

예를 들어 다음과 같이 스크립트 입력을 시작할 수 있습니다.

#!/bin/bash
SOMEDAY="05-02"
TODAY=`date +%m-%d`
if [ $TODAY == $SOMEDAY ]
then 
   echo "Today is the day!"
else
   echo "Today is NOT the day."
fi

이제 파일을 저장 ^o하고 nano편집기를 종료합니다 ^x.

  1. 스크립트를 실행 가능하게 만들려면 파일 권한을 설정해야 합니다. 그런 다음 스크립트를 실행할 수 있습니다.
$ chmod 755 ~/chkdate.sh
$ ~/chkdate.sh 
Today is the day!
$ 

오늘이 5월 2일이므로 명령문then 의 조건 은 if실행( echo "Today is the day!")입니다. 연중 다른 날에는 이 else성명이 시행됩니다. 또한 조건이 반드시 필요한 것은 아닙니다 else. 필요하지 않으면 무시해도 됩니다.

  1. 이 명령이 실행된다고 가정하면 스크립트를 수정하여 echo ...해당 명령을 사용하려는 명령으로 바꿀 수 있습니다.

관련 정보