Script Shutdown NAS
  [ Ignoră ]
RankRank
Jr. Member
Din: Malul indiguit al Dambovitei
Macuser din: 08.10.07

Ma poate ajuta cineva va rog cu un script de shutdown pentru un NAS? Trebuie sa contina urmatoarele comenzi:
ssh root@IP
password
poweroff

Problema e urmatoarea: intrucat mi-au crapat 2 hard-uri datorita penelor de curent, am fost nevoit sa iau un UPS. Am cautat unul cu serial si USB (sperand sa leg MacMini-ul pe serial si NAS-ul pe USB), dar problema e duala: MacMini-ul nu il recunoaste pe serial (utilizand un cablu serial to USB), ci doar pe USB, iar NAS-ul nu il recunoaste deloc.

Asa ca solutia ar fi sa leg MacMini-ul prin USB si sa folosesc un script pentru a da comanda de shutdown si catre NAS.

Am incercat cu Automator, dar chestia cu Watch Me Do nu functioneaza as advertised (de exemplu in loc de ssh root@IP incepe cu h root@IP, omitand cei doi ‘s’), iar daca ii dau run a script imi spune ca stdin nu e whatever.

Multam si sa fiti iubiti!

Profil
 
  [ Ignoră ]   [ # 1 ]
Avatar
RankRankRank
Member
Din: bucuresti
Macuser din: 12.01.08

sper ca te ajuta asta
http://www.cyberciti.biz/faq/noninteractive-shell-script-ssh-password-provider/

 Semnătură 

am mere.

Profil
 
  [ Ignoră ]   [ # 2 ]
Avatar
RankRankRank
Member
Din: bucuresti
Macuser din: 12.01.08

mai e si expect

http://linux.die.net/man/1/expect
http://ubuntuforums.org/showthread.php?t=220139

 Semnătură 

am mere.

Profil
 
  [ Ignoră ]   [ # 3 ]
RankRank
Jr. Member
Din: Malul indiguit al Dambovitei
Macuser din: 08.10.07

Multam mult, cu expect ma chinui si eu acum dar nu iese cum vreau eu… :(

Profil
 
  [ Ignoră ]   [ # 4 ]
RankRank
Jr. Member
Din: Malul indiguit al Dambovitei
Macuser din: 08.10.07

Incep sa cred ca am o problema fundamentala - incercati va rog sa nu radeti, habar n-am programare. Cred ca scriptul pentru expect ar trebui sa arate asa:

#!/usr/bin/expect—
set timeout 60
spawn ssh root@IP
expect “root@IP’s password:”
send “PASS\r”
expect “~ $”
send “poweroff\r”

Am incercat sa bag asta in Automator in Run Shell Script si am primit, evident, o eroare. M-am gandit sa il bag in run Apple Script si tot nu merge.

Idei?

Profil
 
  [ Ignoră ]   [ # 5 ]
Avatar
RankRankRankRank
Administrator
Din: London, UK
Macuser din: 11.10.05

tanti mama lu’ Seeeeergiu!?! Il lasati pe Sergiu sa iasa afara si sa-l ajute si pe omul asta?

 Semnătură 

MB12 early2015, mini late2018, i2, i4S, iX, Watch Nike (Series3), iPad 1, iPad Pro 9.7”,  Pencil, shuffle 4, TV4, AExtreme x2, AEBSv2, AEBS original(x2) v1(x2), Homepod (x2), iPod Hi-Fi (x3)

Profil
 
  [ Ignoră ]   [ # 6 ]
Avatar
RankRankRank
Member
Din: Sibiu
Macuser din: 30.08.07

De aici numai Sergiu te mai poate nscoate.

 Semnătură 

Mac 4 Ever!

Mac Mini Late 2012
Intel i5 @ 2,5 GHz / Intel HD 4000 / 500 GB HDD

iPad Mini 4G

Profil
 
  [ Ignoră ]   [ # 7 ]
RankRank
Jr. Member
Din: Malul indiguit al Dambovitei
Macuser din: 08.10.07

Thanks, sper sa vina Sergiu cu sfaturi. Pana atunci, nu stau chiar degeaba si am modificat un script gasit pe net si pare sa mearga (am reusit sa ii dau shutdown).

Raman 2 probleme:

(1) script-ul are o eroare in sintaxa “make new document” - cred ca asta inseamna sa deschida o fereastra noua si nu merge. Functioneaza deci doar cand Terminal e deja deschis (situatie in care deschide intr-adevar o noua fereastra de terminal). O sa mai fac ceva incercari ca sa vad daca pot sa il pacalesc.

(2) trebuie sa includ cumva script-ul asta in shutdown-ul Mac-ului. Cum fac asta?

Iacata si script-ul - poate ii va fi de folos cuiva in viitor.

tell application “System Events”
  if not (exists process “Terminal”) then
      set aDone to 0
      set wCounter to 0
      tell application “Terminal”
        activate
        delay 2
        make new document
      end tell
  else
      delay 2
      set wCounter to 1
      tell application “Terminal”
        activate
        delay 2
      end tell
  end if
end tell

delay 2

tell application “System Events”
  tell process “Terminal”
      keystroke “n” using {command down}
      delay 3
      keystroke “k” using {command down}
      delay 1
      keystroke “ssh root@IP”
      delay 2
      keystroke return
      delay 5
      keystroke “k” using {command down}
      delay 1
      keystroke “a” using {command down}
      delay 1
      keystroke “c” using {command down}
      delay 1
      set screenData to (the clipboard) as text
      if screenData contains “password” then
        keystroke “PASSWORD”
        delay 2
        keystroke return
        delay 5
      end if
      delay 3
      keystroke “k” using {command down}
      delay 1
      keystroke “a” using {command down}
      delay 1
      keystroke “c” using {command down}
      delay 1
      set screenData to (the clipboard) as text
      if screenData contains “~ $” then
        keystroke “poweroff”
        delay 1
        keystroke return
      end if
  end tell
end tell
delay 2

Profil
 
  [ Ignoră ]   [ # 8 ]
RankRank
Jr. Member
Din: Malul indiguit al Dambovitei
Macuser din: 08.10.07

Problema (1) e rezolvata - am mai scurtat script-ul.

Ramane (2) - cum fac sa automatizez procesul. Ma gandesc ca poate nu merge sa il leg de shutdown-ul Mac-ului, ca nu stiu daca mai poate porni/rula noi aplicatii cand s-a initiat shutdown. Solutia alternativa ar fi ca script-ul sa porneasca automat cand Mac-ul a detectat ca e pe UPS.

Ergo, cum fac asta?

Profil
 
  [ Ignoră ]   [ # 9 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Ce ai instalat tu pe NAS ca să știe de UPS ? Nu există un standard la comunicația cu UPS-ul pe serială - fiecare producător are altceva dar 95% sigur că există deja un driver
Zi ce model de UPS ai

pentru ca să faci ssh fără ă te întrebe de parole faci așa pe mac:

ssh-keygen -t rsa
(la passphrase ii dai un Enter)
ssh root@IP_NAS mkdir .ssh
scp .ssh/id_rsa.pub root@IP_NAS:.ssh/authorized_keys

de acuma, de fiecare dată când dai “ssh root@IP_NAS” nu te mai întreabă parola

și poți da simplu comanda: “ssh root@IP_NAS poweroff”

Pe OSX, dacă există scriptul /etc/rc.local.shutdown, el se va executa ca userul root la oprirea mac-ului (deci trebuie să repeți generarea unei chei de ssh și pentru root pe mac și să ADAUGI cheia publica a root-ului la authorized_keys pe NAS cu un editor de text) . Acuma e interesant de văzut cum îți dai seama dacă e shutdown/reboot normal sau a fost cauzat de către UPS smile

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 10 ]
RankRank
Jr. Member
Din: Malul indiguit al Dambovitei
Macuser din: 08.10.07

Am incercat inainte chestia cu rsa_id pana nu am mai putut. Problema e ca NAS-ul e o mare porcarie (WD ShareSpace) si nu stie scp, asa ca deocamdata nu am reusit sa ii dau de cap. Mai incerc, dar pentru mine nu e o problema daca trimit parola in clear (desi as prefera desigur sa evit daca ar merge cu rsa_id).

NAS-ul ar trebui sa vada UPS-ul prin interfata web, dar nu il detecteaza (nici cand il leg prin USB, si cu atat mai putin cand il leg prin serial).

UPS-ul e un Tripp Lite SMX750SLT - l-am ales pentru ca are atat USB, cat si serial si inteleg ca stie sa le foloseasca in acelasi timp (APC poate folosi ori una, ori alta).

Profil
 
  [ Ignoră ]   [ # 11 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

daca nu stie scp, faci ssh acolo, creezi directorul .ssh si in el un fisier authorized_hosts și faci copy-paste la continutul lui id_rsa.pub

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 12 ]
RankRank
Jr. Member
Din: Malul indiguit al Dambovitei
Macuser din: 08.10.07

Am incercat si asa (asta pentru ca ma agravasem serios cand am vazut ca nu merge cu scp), dar tot nu a mers, probabil ca am bagat un rand suplimentar pe undeva. Inteleg ca in unele cazuri trebuie sa ii dai si chown, asa ca voi mai sapa.

Vesti bune insa: scriptul functioneaza si merge si shutdown-ul multumita unui program numit Power Manager facut de DssW. Deocamdata e in demo mode, am 30 de zile de mocangeala, apoi il voi cumpara daca nu gasesc intre timp vreo solutie alternativa de a automatiza executia scriptului cand Mac-ul intra pe UPS.

Hint: daca vreti ca toata smecheria asta sa functioneze, nu uitati sa puneti si router-ul pe UPS…  LOL

Sergiu & all, multam pentru ajutor!

Profil
 
   
 
 
‹‹ AirServer      Alert ››