Αποστολέας Θέμα: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;  (Αναγνώστηκε 6806 φορές)

odysseas

  • Ομάδα διαγωνισμάτων 2011
  • *
  • Μηνύματα: 842
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #15 στις: 04 Ιουν 2011, 05:38:57 μμ »
Πάντως μια ακόμα λύση (που έχει συζητηθεί και αλλού) και προσωπικά την εφάρμοσα χωρίς κανένα απολύτως πρόβλημα είναι ένα μικρό scriptάκι που στέλνει ένα συγκεκριμένο αρχείο στο home (ή στην επιφάνεια εργασίας) των μαθητών ενός τμήματος. Η command line κλήση για να στείλεις, για παράδειγμα, ένα αρχείο στους μαθητές του β1 είναι distribute example.odt gymb1

Φαντάζομαι ακόμα καλύτερο scriptάκι για αυτή τη δουλειά υπάρχει στο proposed αποθετήριο των sch-scripts!

odysseas

  • Ομάδα διαγωνισμάτων 2011
  • *
  • Μηνύματα: 842
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #16 στις: 04 Ιουν 2011, 10:17:17 μμ »
Φαντάζομαι ακόμα καλύτερο scriptάκι για αυτή τη δουλειά υπάρχει στο proposed αποθετήριο των sch-scripts!

Έριξα μια ματιά στον κώδικα, η υλοποίηση είναι σε python, δεν είμαι σίγουρος αν είναι άμεσα χρησιμοποιήσιμη.  :-\
« Τελευταία τροποποίηση: 04 Ιουν 2011, 10:40:22 μμ από odysseas »

aspd

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 476
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #17 στις: 04 Ιουν 2011, 11:44:18 μμ »
Το script που χρησιμοποιώ για να αντιγράψω ένα αρχείο που είναι στο φάκελο ΥΛΙΚΟ στους φακέλους όλων των μαθητών ενός τμήματος (ο 2ος τρόπος που λέω παραπάνω) είναι το ακόλουθο:
#! /bin/bash
for i in `ls /home/teacher/ΤΜΗΜΑΤΑ/$1`;
do
 isValidFolder=`ls -dl /home/teacher/ΤΜΗΜΑΤΑ/$1/$i | grep "^d"`
 if [ "$isValidFolder" != "" ]; then
  cp -r /home/teacher/ΥΛΙΚΟ/$2 /home/teacher/ΤΜΗΜΑΤΑ/$1/$i
 fi
done

Οπότε απλώς τρέχω το script με παραμέτρους το όνομα του τμήματος, π.χ. Α1.1 και το όνομα του αρχείου της άσκησης.

odysseas

  • Ομάδα διαγωνισμάτων 2011
  • *
  • Μηνύματα: 842
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #18 στις: 05 Ιουν 2011, 01:57:14 πμ »
Υπάρχουν διάφοροι τρόποι να απαριθμήσεις τους χρήστες ενός τμήματος. Ο πιο απλός βέβαια είναι όταν τα usernames περιέχουν το όνομα του τμήματος και έναν αριθμό (όπως αυτόματα μπορούν να φτιαχτούν από τα sch-scripts). Tότε η for σου μπορεί να στέλνει το αρχείο σου απευθείας στα home folders των μαθητών, αντί για τους υποκαταλόγους του δικού σου home folder.

alkisg

  • Τεχνικός / καθαρίστρια
  • *****
  • Μηνύματα: 6147
    • Ο Διερμηνευτής της ΓΛΩΣΣΑΣ
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #19 στις: 05 Ιουν 2011, 09:24:09 πμ »
Για την ώρα η δυνατότητα δημιουργίας κοινόχρηστων φακέλων δεν υπάρχει στο -proposed αποθετήριο, αλλά έστειλα mail στη λίστα sch-devs μήπως τη δημοσιεύσουμε σιγά σιγά τώρα που τελείωσε η σχολική χρονιά.


@aspd, η εντολή find βολεύει καλύτερα για το script σου:
Κώδικας: Text
  1. #!/bin/sh
  2.  
  3. for i in $(find "/home/teacher/ΤΜΗΜΑΤΑ/$1" -maxdepth 1 -type d); do
  4.   cp -r "/home/teacher/ΥΛΙΚΟ/$2" "$i"
  5. done


Επίσης, για όποιον το χρειαστεί, να ένα σκριπτάκι "group-members" που απαριθμεί τους μαθητές κάποιων τμημάτων (ομάδων):
Κώδικας: Text
  1. #!/bin/sh
  2.  
  3. if [ $# -lt 1 ]; then
  4.         echo "\
  5. Usage: ${0##*/} group1 group2 ...
  6. Shows the members that belong to the specified groups, removing any duplicates." >&2
  7.         exit 1
  8. fi
  9.  
  10. for group
  11. do
  12.         getent group "$group" | cut -d':' -f4 | tr ',' '\n'
  13. done | sort -u | tr '\n' ' ' | sed  's/^ //;s/ $/\n/'

Το καλείτε π.χ. με `group-members a1 a2`.

aspd

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 476
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #20 στις: 05 Ιουν 2011, 09:50:20 πμ »
for i in $(find "/home/teacher/ΤΜΗΜΑΤΑ/$1" -maxdepth 1 -type d); do
Πολύ πιο κομψό. Ευχαριστώ!

... μήπως τη δημοσιεύσουμε σιγά σιγά τώρα που τελείωσε η σχολική χρονιά.
Ό, τι μπορείτε να δημοσιεύσετε τώρα που τελείωσε η χρονιά ή αρχές Σεπτεμβρίου καλό είναι. Μετά μπαίνουμε στην καθημερινή ρουτίνα με τα μαθήματα και δε γίνονται τόσο εύκολα αλλαγές οργάνωσης.

odysseas

  • Ομάδα διαγωνισμάτων 2011
  • *
  • Μηνύματα: 842
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #21 στις: 05 Ιουν 2011, 01:38:02 μμ »
2ος τρόπος (όχι τόσο σωστός, αλλά έλα που με βολεύει! Αυτόν εφάρμοσα τη χρονιά που πέρασε). 9 λογαριασμοί συνολικά (1 για κάθε υπολογιστή). Στο server είχα φτιάξει ένα φάκελο ΤΜΗΜΑΤΑ, όπου μέσα είχα μία δομή σαν την παρακάτω:
φάκελος Α1.1 με υποφακέλους: Μαρία_Χ, Νίκος_Υ, ... Γιώργος_Ζ
φάκελος Α1.2 με υποφακέλους: Θανάσης_Χ ...

aspd, αν κατάλαβα καλά αυτό σε βολεύει γιατί είναι ευκολότερη η συλλογή των αρχείων, ή υπάρχει κι άλλος λόγος;

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

aspd

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 476
Απ: Κοινόχρηστοι φάκελοι ή αποστολή / συλλογή αρχείων;
« Απάντηση #22 στις: 05 Ιουν 2011, 06:55:16 μμ »
Στην πράξη το λογαριασμός ανά μαθητή δεν το έχω δοκιμάσει ακόμα.
Η δομή με τους φακέλους που είναι στο λογαριασμό μου στο server με βολεύει για την εύκολη συλλογή αρχείων και γιατί μπορώ πολύ γρήγορα να δω όλα όσα έχει αποθηκεύσει ο μαθητής και όχι μόνο το συγκεκριμένο αρχείο που πιθανώς να μπορούμε να συλλέξουμε αυτόματα.
Επίσης ... το εργαστήριο είναι έτοιμο για την επόμενη ώρα (στο σχολείο οι ρυθμοί και οι εναλλαγές μερικές φορές είναι πιεστικές από χρόνο), χωρίς logout και νέο login. Το τελευταίο όμως αγνόησέ το, δεν είναι επιχείρημα, γιατί οι μαθητές θα πρέπει να είναι εξοικειωμένοι με την ιδέα προσωπικού λογαριασμού στον οποίο συνδέονται και αποσυνδέονται μόλις τελειώσουν τη δουλειά τους.