allVoIP forum  

Τώρα είναι 01 Φεβ 2023, 15:26


Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]




Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 9 Δημοσιεύσεις ] 
Συγγραφέας Μήνυμα
 Θέμα δημοσίευσης: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 06 Φεβ 2016, 22:33 
SIP user

Εγγραφή: 04 Ιουν 2013, 23:03
Δημοσιεύσεις: 56
Καλησπέρα, θα ήθελα να κάνω μια ερώτηση.Με το rsync κάνω συγχρονισμό τα recordings του elastix σε ένα NAS και λειτουργεί κανονικά με ένα cronjob κάθε βράδυ στις 12:30 και όλα τα recordings της προηγούμενης μέρες είναι διαθέσιμα στο NAS. Αυτό που θέλω να κάνω είναι να δίνω αυτή την εντολή του rsync από ένα yealink τηλέφωνο.Αυτό είναι σαν συνέχιση της ιδέας για την εκκίνηση ενός υπολογιστή από το yealink που είχατε γράψει στο blog και είχα συμμετάσχει και εγώ στη συνέχεια στο forum.Όποτε ξεκίνησα ως εξής:
1)H εντολή για το rsync είναι "rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings" το οποίο λειτουργεί και χειροκίνητα(εννοώ γράφοντάς στο cli) και με το cronjob χωρίς passwords.Μετά κάνω edit το /etc/asterisk/extensions_custom.conf και κάτω από το [from-internal-custom]

Κώδικας:
exten => 889,1,NoOp(BackupRecordings) 
same => n,Wait(5)                               
same => n,System(rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings)
same => n,Wait(60)                               
same => n,Hangup


2)Επανεκκίνηση asterisk -rx reload
3)Κάνω την κλήση και αυτό είναι αποτέλεσμα της κλήσης
Κώδικας:
Executing [889@from-internal:1] NoOp("SIP/201-000001a7", "BackupRecordings") in new stack
    -- Executing [889@from-internal:2] Wait("SIP/201-000001a7", "5") in new stack
    -- Executing [889@from-internal:3] System("SIP/201-000001a7", "rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings") in new stack
    -- Executing [889@from-internal:4] Wait("SIP/201-000001a7", "60") in new stack
    -- Executing [889@from-internal:5] Hangup("SIP/201-000001a7", "") in new stack
  == Spawn extension (from-internal, 889, 5) exited non-zero on 'SIP/201-000001a7'
    -- Executing [h@from-internal:1] Hangup("SIP/201-000001a7", "") in new stack
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/201-000001a7'


Αποτέλεσμα , παρόλο που η εντολή δείχνει να εκτελείται δεν γίνεται ο συγχρονισμός.Αν το κάνω μετά χειροκίνητα όλα δουλεύουν μια χαρά.

Μετά δοκίμασα να δώσω την εντολή μεσα απο ένα .sh αρχείο.
1)Δημιούργησα ένα αρχείο backuprecordings.sh και έβαλα μέσα
Κώδικας:
#!/bin/sh

# Daily Data Backup
rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings

Μετά το τρέχω σαν απλό εκτελέσιμο για να δοκιμάσω αν λειτουργεί χειροκίνητα(εννοώ γράφοντάς στο cli) και λειτουργεί κανονικά και με το cronjob αφού είναι πρακτικά η ίδια εντολή.
2)Μετά κάνω edit το /etc/asterisk/extensions_custom.conf και κάτω από το [from-internal-custom]

Κώδικας:
exten => 889,1,NoOp(BackupRecordings) 
same => n,Wait(5)                               
same => n,System(/root/backuprecordings.sh)
same => n,Wait(60)                               
same => n,Hangup


Κώδικας:
3)Κάνω την κλήση και αυτό είναι αποτέλεσμα της κλήσης
-- Executing [889@from-internal:1] NoOp("SIP/201-000001a8", "BackupRecordings") in new stack
    -- Executing [889@from-internal:2] Wait("SIP/201-000001a8", "5") in new stack
    -- Executing [889@from-internal:3] System("SIP/201-000001a8", "/root/backuprecordings.sh") in new stack
    -- Executing [889@from-internal:4] Wait("SIP/201-000001a8", "60") in new stack
    -- Executing [889@from-internal:5] Hangup("SIP/201-000001a8", "") in new stack
  == Spawn extension (from-internal, 889, 5) exited non-zero on 'SIP/201-000001a8'
    -- Executing [h@from-internal:1] Hangup("SIP/201-000001a8", "") in new stack
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/201-000001a8'


Αποτέλεσμα , παρόλο που η εντολή δείχνει να εκτελείται δεν γίνεται ο συγχρονισμός.Αν το κάνω μετά χειροκίνητα όλα δουλεύουν μια χαρά.

Δεν μπορώ να καταλάβω γιατί δεν εκτελείται η εντολή, υπάρχει κάτι που έχω λάθος?

EDIT
Δοκίμασα να αλλάξω στην εντολή System με τη εντολή Exec και είχα πάλι σφάλματα, και μάλλον το Exec είναι λάθος εντολή γιατί η κλήση μου τελειώνει αμέσως και could not find application:
Κώδικας:
-- Executing [889@from-internal:1] NoOp("SIP/201-000001aa", "BackupRecordings") in new stack
    -- Executing [889@from-internal:2] Wait("SIP/201-000001aa", "5") in new stack
    -- Executing [889@from-internal:3] Exec("SIP/201-000001aa", "/root/backuprecordings.sh") in new stack
[2016-02-06 21:49:56] WARNING[4814][C-0000009f]: app_exec.c:160 exec_exec: Could not find application (/root/backuprecordings.sh)
  == Spawn extension (from-internal, 889, 3) exited non-zero on 'SIP/201-000001aa'
    -- Executing [h@from-internal:1] Hangup("SIP/201-000001aa", "") in new stack
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/201-000001aa'


Κώδικας:
-- Executing [889@from-internal:1] NoOp("SIP/201-000001ab", "BackupRecordings") in new stack
    -- Executing [889@from-internal:2] Wait("SIP/201-000001ab", "5") in new stack
    -- Executing [889@from-internal:3] Exec("SIP/201-000001ab", "rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings") in new stack
[2016-02-06 21:52:16] WARNING[4831][C-000000a0]: app_exec.c:160 exec_exec: Could not find application (rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings)
  == Spawn extension (from-internal, 889, 3) exited non-zero on 'SIP/201-000001ab'
    -- Executing [h@from-internal:1] Hangup("SIP/201-000001ab", "") in new stack
  == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/201-000001ab'


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 08 Φεβ 2016, 10:32 
SIP debugger

Εγγραφή: 26 Μαρ 2009, 20:02
Δημοσιεύσεις: 1007
Αφού συνδεθείτε στην κονσόλα του μηχανήματος θα δώσετε την εντολή whereis rsync.

Θα σας εμφανίσει που βρίσκεται η εντολή rsync στο σύστημά σας. Στο dialplan σας, στην εντολή System θα συμπληρώσετε το path μαζί με την εντολή rsync όπως θέλετε να εκτελεστεί.


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 08 Φεβ 2016, 18:36 
SIP user

Εγγραφή: 04 Ιουν 2013, 23:03
Δημοσιεύσεις: 56
Καλησπέρα, λοιπόν το έκανα και ήταν στο
Κώδικας:
/usr/bin/rsync


Οπότε άλλαξα την εντολή μου σε:
Κώδικας:
/usr/bin/rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings


Έκανα την αλλαγή με όλους τους παραπάνω συνδυασμούς και το αποτέλεσμα το ίδιο. Δεν κάνει συγχρονισμό , όμως όταν το κάνω χειροκίνητα και με τις καινούργιες εντολές αφού πρόσθεσα όλο το path δουλεύει κανονικά.Τα logs δεν τα έχω ανεβάσει γιατί είναι ακριβώς τα ίδια με πριν , το μόνο που αλλάζει είναι το path της εντολής.Προσπάθησα να κάνω και πιο απλό to dialplan δηλαδή χωρίς Wait αλλά τα ίδια δεν μπορώ να καταλάβω γιατί δεν το εκτελεί.


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 09 Φεβ 2016, 10:08 
SIP debugger

Εγγραφή: 26 Μαρ 2009, 20:02
Δημοσιεύσεις: 1007
Αφού συνδεθείτε με ssh στο μηχάνημα, δώστε την παρακάτω εντολή

su - asterisk

δείτε αν μπορείτε να εκτελέσετε σαν asterisk την εντολή του rsync.


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 09 Φεβ 2016, 10:30 
SIP user

Εγγραφή: 04 Ιουν 2013, 23:03
Δημοσιεύσεις: 56
Καλημέρα, έδωσα την εντολή ξεκίνησε να την εκτελεί αλλά με μια διαφορά απο όταν την δίνω απο κανονικό cli ότι τώρα μου ζητάει να ξαναβάλω password . Στο κανονικό cli το είχα σετάρει με αυτή τη διαδικασία http://www.thegeekstuff.com/2011/07/rsync-over-ssh-without-password/ και δουλεύει γιατί το cronjob λειτουργεί με αυτό το command. Αλλά όταν έβαλα το
Κώδικας:
su - asterisk
μου ζήτησε ξανα κωδικό.Τι πρέπει να κάνω?Έτσι έπρεπε να συμπεριφέρεται?


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 09 Φεβ 2016, 11:14 
SIP debugger

Εγγραφή: 26 Μαρ 2009, 20:02
Δημοσιεύσεις: 1007
Σωστά ζητάει κωδικό γιατί ο Asterisk δεν έχει τα απαραίτητα δικαιώματα να εκτελέσει το rsync.

Δοκιμάστε να βάλετε το παρακάτω στο dialplan σας

echo <password> | sudo -S rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings

Όπου <password> βάζετε το root password.

Αν δεν θέλετε να φαίνεται το root password στο dialplan σας για λόγους ασφαλείας τότε θα πρέπει να κάνετε edit το αρχείο sudoers και να δώσετε τα απαραίτητα δικαιώματα στον χρήστη του asterisk ώστε να μπορεί να εκτελεί την εντολή rsync χωρίς κάποιο κωδικό.


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 09 Φεβ 2016, 12:18 
SIP user

Εγγραφή: 04 Ιουν 2013, 23:03
Δημοσιεύσεις: 56
Λοιπόν τα αποτελέσματα είναι τα εξής αν βάλω μόνο την τροποποιημένη εντολή
Κώδικας:
echo <password> | sudo -S rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings


μου ζητάει και πάλι password.Οπότε δεν δούλεψε. Πήγα στο sudoers ( /etc/sudoers ) και πρόσθεσα στο τέλος
Κώδικας:
asterisk ALL = NOPASSWD: /usr/bin/rsync
και προσπάθησα να ξαναεκτελέσω την εντολή χωρίς password όπως παραπάνω
Κώδικας:
rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings
και μου ζήτησε πάλι κωδικό.
Μετά εκτέλεσα την αρχική εντολή
Κώδικας:
echo <password> | sudo -S rsync -avzhe ssh /var/spool/asterisk/monitor/ root@192.168.87.101:/volumeUSB1/usbshare/@download/recordings

και χωρίς να μου ζητήσει password την εκτελεί κανονικά.Τη δοκίμασα και απο το extension απο το yealink και δουλεύει αλλά παραμένει το θέμα της ασφάλειας καθώς μέσα στο dialplan όπως είπατε είναι ο root κωδικός για το απομακρυσμένο ssh connection που κάνει το rsync (να πω εδώ οτι ο κωδικός αυτός είναι απο το root account του NAS και όχι ο root κωδικός του elastix)
Υπάρχει κάποιος άλλος τρόπος για να παραμετροποιήσω το sudoers αρχείο ή το ssh για να μην είναι ο κωδικός στο dialplan?


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 09 Φεβ 2016, 12:36 
SIP debugger

Εγγραφή: 26 Μαρ 2009, 20:02
Δημοσιεύσεις: 1007
Αν δεν βάλετε το sudo μπροστά από την εντολή δεν γίνεται χρήση της ρύθμισης που κάνατε στο sudoers οπότε σωστά σας ζητάει πάλι κωδικό.

Τρέξτε την εντολή με sudo χωρίς να κάνετε πρώτα echo το root password.


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
 Θέμα δημοσίευσης: Re: Εκκίνηση backup των recordings από yealink τηλέφωνο.
ΔημοσίευσηΔημοσιεύτηκε: 09 Φεβ 2016, 12:49 
SIP user

Εγγραφή: 04 Ιουν 2013, 23:03
Δημοσιεύσεις: 56
Λειτουργεί ακριβώς όπως το είπατε, οπότε έβγαλα και password απο το dialplan και λειτουργεί και απο το cli και απο το extension, λειτουργεί μια χαρά. Ευχαριστώ παρά πολύ για τη βοήθεια!!! :D


Κορυφή
Χωρίς σύνδεση Προφίλ  
 
Τελευταίες δημοσιεύσεις:  Ταξινόμηση ανά  
Δημιουργία νέου θέματος Απαντήστε στο θέμα  [ 9 Δημοσιεύσεις ]  Συντονιστής: allVoIP team

Όλοι οι χρόνοι είναι UTC + 2 ώρες [ DST ]


Μέλη σε σύνδεση

Μέλη σε αυτή την Δ. Συζήτηση : Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης


Δεν μπορείτε να δημοσιεύετε νέα θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να απαντάτε σε θέματα σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επεξεργάζεστε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να διαγράφετε τις δημοσιεύσεις σας σε αυτή τη Δ. Συζήτηση
Δεν μπορείτε να επισυνάπτετε αρχεία σε αυτή τη Δ. Συζήτηση

Αναζήτηση για:
Μετάβαση σε:  
cron
Copyright © 2008-2020, allVoIP.gr