2012-10-23 24 views
10

Vì vậy, tôi có một tập hợp các tập lệnh được sử dụng để kiểm soát khả năng thu và truyền của tôi trong một số sự kiện như khởi động, bảo vệ màn hình và điều khiển từ xa. Một trong những điều này được thực hiện trong khi đăng nhập nhưng có lẽ tôi không muốn nó chạy kịch bản khi máy được lên lịch để tăng sức mạnh. Tôi có logic để bỏ qua các sự kiện nếu blanked = 0 trong khi thực hiện các ứng dụng khởi động, do đó nó sẽ không gửi ir trong khi khởi động hoặc tắt máy. Làm thế nào tôi có thể thực hiện điều này thông qua việc sử dụng cron? Tôi chọn cron vì những sự kiện đó xảy ra trước khi các ứng dụng khởi động. Cron là tuyệt vời nhưng theo như tôi hiểu tôi chỉ có thể chạy lúc khởi động hoặc trên một lịch trình không phải cả hai. Tôi cần phải viết kịch bản biến thời gian nhưng tôi không chắc chắn như thế nào.Kịch bản khởi động Cron chỉ trong một số thời điểm nhất định trong ngày

syson.sh (gọi tắt là trong khi đăng nhập như một ứng dụng khởi động và trạng thái màn hình thay đổi)

#!/bin/sh 
cd /home/gilson585/ 
blanked=`cat blanked` 
if [ $blanked -eq 0 ] ; then 
    blanked=1;echo $blanked > blanked 
else 
    irsend SEND_ONCE VR4085DF KEY_POWER;irsend SEND_ONCE Kenwood_RC-R0813 power;blanked=0;echo $blanked > blanked 
    sleep 1 
    irsend SEND_ONCE Kenwood_RC-R0813 cd/dvd 
fi 

sysoff.sh (gọi tắt là trong quá trình shutdown như một phần của kịch bản lirc init.d và thay đổi trạng thái màn hình)

#!/bin/sh 
cd /home/gilson585/ 
blanked=`cat blanked` 
if [ $blanked -eq 0 ] ; then 
    irsend SEND_ONCE Kenwood_RC-R0813 power;irsend SEND_ONCE VR4085DF KEY_POWER;blanked=1;echo $blanked > blanked 
fi 

xscreensaver.sh (bảo vệ màn hình cơ quan giám sát, được gọi là trong khi đăng nhập)

#!/bin/bash 
cd /home/gilson585/ 
xscreensaver-command -watch| 
while read STATUS; do 
    case "$STATUS" in 
    BLANK*) 
     /home/gilson585/sysoff.sh;blanked=1;echo $blanked > blanked 
     ;; 
    UNBLANK*) 
     /home/gilson585/syson.sh;blanked=0;echo $blanked > blanked 
     ;; 
    esac 
done 
+3

Tôi thậm chí không nói dối, điều này khá ấn tượng! Bất kỳ cơ hội nào bạn có thể chia sẻ thêm chi tiết về thiết lập của bạn? –

+0

Yea nhưng có rất nhiều thứ và tôi không chắc chắn đây là nơi để đặt nó. Có lẽ tôi sẽ đăng nó lên diễn đàn ubuntu và liên kết nó. – gilson585

+3

Bạn có thể thử kiểm soát điều này bằng cách sử dụng một tệp XML để lên lịch khi nào và khi nào không chạy? Kịch bản có thể đi qua đó và sử dụng nó như một điều khiển với một cổng logic (nếu) –

Trả lời

-1

Ah. Ít nhất, bạn có thể sử dụng hai tập lệnh ngay bây giờ. Cài đặt thời gian là danh sách tuần/giờ/phút/giây/v.v. Bạn thiết lập các thông số như

42 * * * * /bin/execute/awesomescript.sh 

Điều này sẽ thực hiện điều gì đó vào phút 42 của mỗi giờ. Trang này có một lời giải thích rằng tôi sẽ cơ bản được regurgitating: http://kvz.io/blog/2007/07/29/schedule-tasks-on-linux-using-crontab/

Ngoài ra còn có các kịch bản như

42 9,12,15 * * * /bin/stuff/awesomestuff.sh 

Mà sẽ làm awesomestuff.sh tại 09:42, 12:42 và 15:42

Các vấn đề liên quan