Jump to content
BulForum.com

Кой ще напише едно скриптче?


Shade

Recommended Posts

Трябва ми скрипт, който, при пускането си, да проверява дали системното време е в зададен интервал, дали денят от седмицата е делничен и, ако тези условия съвпадат, да подаде една команда към шела.

Идеята е да функционира като будилник - да се изпълнява при boot.

Link to comment
Share on other sites

щото да се пишат скриптове е къде къде по-интересно :) иначе ако ми се занимава мога да опитам .. но Shade найстина опитай с крон-а

Link to comment
Share on other sites

Да, мисля, че така ще стане. Мерси за насоката :)

---

Само да попитам, ако не е логнат никой, за root ли трябва да добавя task? Защото task-ът ми трябва да се изпълнява след като PC-то се е включило само и никой не се е логнал още.

Link to comment
Share on other sites

Еее, Shade, стига излагации бе майна. Ж клас си, в тва ОМГ на нищо ли на са ви научили :) Можеш да си напишеш една програма на C за нула време дето да гледа дали часът те удовлетворява. Да си я компилираш и да си туриш пътя към новополученото бинари в rc.local.

Link to comment
Share on other sites

Да, ама не знам как да подам команда към шела. Пък и съм ламер :)

--

Работи като зададох task за root. Тръгва без проблем в зададения час.

Link to comment
Share on other sites

hm mojto linux4e e zabravilo kvo e tva boot, reboot i dr podobni

Идеята е да функционира като будилник - да се изпълнява при boot.

ako e да функционира като будилник - crontab B)

ako durji6 da e samo pri boot - cron nqma da svyr6i rabota ama izob6to ;)

Link to comment
Share on other sites

eto primeren perl script koito proverqva dali teku6tiq HH:MM e v daden interval i dali tuku6tiq den e v daden interval; dobre 6te e oba4e da spomene6 kakvo to4no iska6 da napravi6 za6toto moje bi crond 6te ti byde po polezen vmesto startup script

 

 #!/usr/bin/perl                                                                                                                              
use strict;                                                                                                                                  
                                                                                                                                            
#                                                                                                                                            
# CONFIG                                                                                                                                     
#                                                                                                                                            
# Set time interval here                                                                                                                     
# Example: 8:00 - 22:00 Mon - Fri                                                                                                            
#                                                                                                                                            
use constant START => '8:00';                                                                                                                
use constant END => '22:00';                                                                                                                 
use constant START_DAY => 1; # 1 == Mon                                                                                                      
use constant END_DAY => 5;   # 5 == Fri                                                                                                      
#                                                                                                                                            
# END OF CONFIG                                                                                                                              
#                                                                                                                                            
                                                                                                                                            
sub passed_time {                                                                                                                            
   my $time = shift;                                                                                                                        
   return  60*(split /:/, $time)[0] + (split /:/, $time)[1];                                                                                
}                                                                                                                                            
                                                                                                                                            
my $start = passed_time(START);                                                                                                              
my $end = passed_time(END);                                                                                                                  
my $current =  passed_time(join ':', (localtime)[2,1]);                                                                                      
my $day = (localtime)[6];                                                                                                                    
                                                                                                                                            
if (($current >= $start) and ($current <= $end)                                                                                              
   and ($day >= START_DAY) and ($day <= END_DAY)) {                                                                                        
                                                                                                                                            
## TIME IS IN SPECIFIED INTERVAL                                                                                                             
## DO STUFF HERE 
## LIKE
# system "shutdonw -h now" :)                                                                                                                            
                                                                                      &nbsp                                                     
}                                                                                                                                            

Link to comment
Share on other sites

hm mojto linux4e e zabravilo kvo e tva boot, reboot i dr podobni

 

ako e да функционира като будилник - crontab B)

ako durji6 da e samo pri boot - cron nqma da svyr6i rabota ama izob6to  ;)

 

i moja comp e zabravil kakvo e tova shut down ot dosta vreme no pomnja kogato predi mjaka i krieshe kabelite za zahranvaneto za da ne se prekaljava i idvashe razgnevena v 11:30 da izdyrpa shtepsela ot kontakta ako vse oshte raboti computara.... ima njakoi raboti koito ne zavisjat ot software-a... che i ot hardware-a v sluchaja daze :)

Link to comment
Share on other sites

  • 3 weeks later...
i moja comp e zabravil kakvo e tova shut down ot dosta vreme no pomnja kogato predi mjaka i krieshe kabelite za zahranvaneto za da ne se prekaljava i idvashe razgnevena v 11:30 da izdyrpa shtepsela ot kontakta ako vse oshte raboti computara.... ima njakoi raboti koito ne zavisjat ot software-a... che i ot hardware-a v sluchaja daze :)

Брей , тя майката ти голем дзвер :) Ама като цяло е права.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...