технические моменты, вдруг кому пригодятся. хотя большей частью выглядят топорно:
Xubuntu
-----------------------------------
-в аудитории была настроена сеть (через samba). на учительском компьютере расшарены 2 папки (на чтение "задания" и запись "результаты"). в "задания" положили папку с ББ, в "результаты" создали папки для каждого ученика с "запускачами" и "стопкранами".
работали: заходили на сетеую "результаты", находили свою папку, запускали запускач, открывался ББ, в нем работали.
сам ББ и задачи к нему обновляли только на "сервере" (удобно)
!!все скрипты не забыть сделать "запускаемыми" (дать разрешение на исполнение)
-----------------------------------
-скрипт запускач:
Код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
#если в пути есть пробел, то перед ним ставить обратный слеш \
#пример bb_adress="/home/user/Рабочий\ стол/bb/BlackBox.exe"
#если в пути у текущей папке есть пробел И текущая папка находится на сетевом диске, то возможно os.getcwd() будет отрабатываться некорректно, в случаях проблем, убрать пробелы из пути текущей папки.
bb_adress='/home/user/soft/BlackBox/BlackBox.Shkola-20121109/BlackBoxL.exe'
os.system ("wine " + bb_adress + " /use " + os.getcwd())
!!!особенность применения. если в сетевой части пути есть пробелы, то скрипт не срабатывал
-----------------------------------
-скрипт стопкран (тк в линуксе контрол+брейк не работает, то использовался экзешник, где прерывание происходило при наличии файла в папке. скрипт просто создает нужный файл (ББ прерывается) и через 5сек его удаляет. прерывать ББ приходилось из "проводника")
Код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import time
file = open("stop.me", "w+")
file.close()
time.sleep(5)
os.remove("stop.me")
-----------------------------------
-монтирование сетевых папок и др
запускается скрипт из файла /etc/rc.local:
Код:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/opt/start.sh
exit 0
содержимое скрипта start.sh:
Код:
#!/bin/bash
DIR1="/home/user/сетевые/задания"
DIR2="/home/user/сетевые/результаты"
#чистка папок, куда нужно подключить сетевые, если в них что-то есть:
if [[ -d "$DIR1" && "$(ls -A $DIR1)" ]]
then
rm -R /home/user/сетевые/задания/*
else
echo pust
fi
if [[ -d "$DIR2" && "$(ls -A $DIR2)" ]]
then
rm -R /home/user/сетевые/результаты/*
else
echo pust
fi
#монтирование сетевых папок:
mount -t cifs -o username=user,password=user //192.168.1.3/задания /home/user/сетевые/задания
mount -t cifs -o username=user,password=user //192.168.1.3/результаты /home/user/сетевые/результаты
#к ББ не относится, но полезно. подгружает по сети "эталонные" настройки рабочего стола, пуска и тд. очень удобно.
cp -R /home/user/сетевые/задания/backup/.config/* /home/user/.config/
cp -R /home/user/сетевые/задания/backup/.local/share/applications/* /home/user/.local/share/applications/
chmod -R 777 /home/user/.config
chmod -R 777 /home/user/.local/share/applications
!!!особенность. сначала нужно включить комп учителя, когда он загрузится, то включать ученические. иначе сетевые папки не подключатся.
-----------------------------------
-отмеченные глюки
1) видимо самбу настроили не очень хорошо. с учительского компьютера не могли редактировать файлы детей (не было доступа).
решением был "костыль": после урока запускали вручную скрипт сбрасывающий права на всю сетевую папку: sudo chmod 777 -R "путь к сетевой папке"
2) запускач не работал, если в сетевой части пути были пробелы (между именем и фамилией изначально создавали с пробелом)
3) в Alt Linux работали без сети, запускали локально (очень муторно было копировать новые задачи по всему кабинету):
-не хотел запускаться, пока в настройках wine в ручную не добавили диск z: указывающий на корень "/"
-не запускаются скрипты из "проводника". не получалось запустить стопкран. ББ повисал при зацикливании, иногда удавалось закрыть и запустить заново, но чаще приходилось перезагружать весь комп. (*разобраться с этим не успел*)
-----------------------------------------
мусор из напоминалок:
Цитата:
-скопировать смб.конф
-добавить пользователей в самбу (тех же, что логинятся? забыл команды*)
-для общих папок на сервере для учителей сделать скрипт сброса прав
(чмод), тк когда ученики что-то создают, бывает потом не исправишь без
чмода
smb user add
#smbpasswd -a joe
редактируем смб.конф и затем
# service smb restart
OR
# /etc/init.d/smb reload