5 분마다 .sh 실행


12

일본 위성 서버에서 사진을 다운로드하여 배경 그림으로 설정하는 .sh 스크립트가 있습니다. 시작 목록에 넣었지만 5 분마다 자동으로 실행하려면 어떻게해야합니까?


1
cronmaker.com을 사용해보십시오. cron-expression을 만들고 crontab -e로 넣을 수 있습니다.
We are Borg

2
5 분마다 사진이 바뀌나요? 대상 서버에 덜 불필요하게로드를 생성하는 간격을 사용하십시오. 또는 파일이 실제로 변경된 경우에만 다운로드하십시오.
til_b

1
그건 그렇고, 우주 배경의 URL은 무엇입니까?
bohdan_trotsenko

답변:


14

게으른 옵션

경우 당신이 쉬운 방법을 원하고 피하기 세트에있는 환경 변수를 찾을 수 있습니다 :

  • 스크립트에 shebang이 포함되어 있는지 확인하십시오
  • 그것을 실행 가능하게 만드십시오
  • 시작 응용 프로그램에 다음을 추가하십시오.

    /bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"

    대시> 시작 애플리케이션> 추가. 다음 명령을 추가하십시오 :

    /bin/bash -c "sleep 15 && while true; do <path_to_your_script.sh> ; sleep 300; done"

설명

자신의 환경 (예 : 터미널 창 또는 시작 응용 프로그램)에서 스크립트를 실행하면 여러 환경 변수가 설정됩니다. cron그러나 제한된 환경 변수 세트로 스크립트를 실행합니다.
스크립트가 의심 할 바없이 다음 gsettings명령을 사용합니다 .

gsettings get org.gnome.desktop.background picture-uri <wallpaper>

배경 화면을 설정하려면 거의 확실하게 명령이에서 실행될 때 중단됩니다 cron.

"게으른 해결책"의 단점은 순전히 이론적 인 것입니다. 실제로 지속적으로 잠자기 명령은 시스템에 아무 의미가 없습니다 .

추가 정보; 대안 적으로

이 게시물을 읽고 과거의 경험을 통해 DBUS_SESSION_BUS_ADDRESS환경 변수를 설정해야한다고 확신합니다 .

이렇게하려면 스크립트 시작 부분 (세방 아래)에 다음 섹션을 추가하십시오.

PID=$(pgrep gnome-session)
export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-)

그런 다음에서 성공적으로 실행할 수 있어야합니다 cron.

그러나 허슬을 잘 저장하고 게으른 옵션을 선택할 수 있습니다.


@AleksanderMahnyov 천만에요. 다행이다 :)
Jacob Vlijm

2
크론 작업을 사용하는 것이 훨씬 좋습니다.
Luka Ramishvili

1
@LukaRamishvili 댓글 주셔서 감사합니다. 그러나 : a. 왜 그런데? 잠자기 명령은 시스템에 아무 의미가 없습니다 . 비. 나는 심지어 옵션을 포함시켰다.
Jacob Vlijm

1
그렇지 않으면 그놈 세션 변수에 대한 훌륭한 연구가 OP에 많은 도움이 될 것입니다.
루카 Ramishvili

2
방금 봤습니다 : cpu 0.0%무슨 세금에 대해 이야기하고 있습니까?
Jacob Vlijm

25

당신의에 넣어 crontab.

다음을 통해 cron테이블을 엽니 다 .

crontab -e

이제 다음을 추가하십시오.

*/5 * * * * /path/to/script.sh

스크립트를 미리 실행 가능하게 만드는 것을 잊지 마십시오.


스크립트가 X에 의존 DISPLAY하므로 스크립트 환경에 스크립트 를 추가하는 것이 좋습니다 .

*/5 * * * * DISPLAY=:0 /path/to/script.sh

:0실제로 교체하십시오 DISPLAY( echo $DISPLAY대화식 세션에서 찾을 수 있음 ).

필요한 경우 XAUTHORITY환경 변수도 추가 할 수 있습니다 .

*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh

다시 값을 찾을 수 있습니다 echo $XAUTHORITY.


1
그것이 cron의 제한된 환경 변수와 함께 작동하는지 확실하지 않지만 OP가 그것이 언급하는 경우를 보자 :)
Jacob Vlijm

1
@AleksanderMahnyov 내용을 보지 않고 말하기 어려운 스크립트를 추가하려면 질문을 편집 하십시오. 아마도 DISPLAY(및 / 또는 XAUTHORITY) 문제입니다.
heemayl

1
@Kartagis Cron은 초를 처리 할 수 ​​없으며, 여전히 문법적으로 잘못된 몇 시간 동안하려고합니다.
heemayl

2
나는 cron에 대해 알고 있었지만 약간의 새로 고침 과정이 필요했기 때문에 "게으른 방법"보다는이 방법을 좋아합니다. 이것은 내가 한 일입니다. 고마워요! :)
ZaxLofful

2
허용 된 답변보다 나은 접근 방식. :)
Sandeep Kumar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.