02-06-2008 14:55
Встает вопрос, каким образом, имея под рукой весь перечисленный выше инструментарий, заменить вашу рабочую станцию на Linux-компьютер, и при этом по-прежнему иметь доступ ко всем необходимым файлам? Простейшим ответом может быть такой, -- установите KDE 2.0 или выше, и используйте ее встроенные возможности. Конечно же этот ответ отражает всего лишь мою предрасположенность к KDE-окружению. Вы можете выбрать такое окружение, какое больше нравится, и использовать соответствующие Linux-аналоги Windows-овским сетевым операциям.
Все диски, которые должны быть "подключены" (mapped) на стадии загрузки, помещаются в /etc/fstab. Если вы желаете, чтобы пользователь действительно чувствовал себя комфортабельно, то можете монтировать SMB-ресурсы точно так же, как если бы они были локальными дисками:
# /etc/fstab: static file system information.## <file system> <mount point> <type> <options> <dump> <pass>/dev/hda1 / ext2 defaults,errors=remount-ro 0 1//HOME/PCURTIS /F: smbfs username=pcurtis,uid=pcurtis, gid=admin 0 1//HOME/SHARED /G: smbfs username=pcurtis,uid=pcurtis, gid=admin 0 1
Убедитесь, что создали каталоги /F: и /G: перед тем, как перезагрузиться.
Диски могут быть подключены и отключены монтированием и демонтированием файловой системы SMB. Следующие два скрипта прекрасно справляются с такой работой, однако они должны быть выполнены от имени root. Если Вы желаете дать такую возможность непривилегированным пользователям, то потребуется установить возможность монтирования для пользователей и установить переменную mapped_root на каталог, доступный пользователям на запись.
Скрипт для подключения сетевого ресурса
#!/bin/sh# maps a drive letter# usage: map F: //HOME/PCURTISmapped_root="/mnt/"drive_dir="$mapped_root$1";share=$2# Check if this mount point is already used.if [ "$(mount | grep -c $drive_dir)" -ne 0 ]; thenecho "Drive $1 is already mapped."exitfi# Make sure the mount point exists!mkdir -p $drive_dir# Mount the file system, using the current username from the environment.mount $share $drive_dir -t smbfs -o username=$USER,uid=$USER, gid=admin || \ \\echo "Unable to map drive!"
Скрипт для отключения сетевого ресурса
#!/bin/sh# unmaps a drive letter# usage: unmap F:mapped_root="/mnt/"drive_dir="$mapped_root$1";share=$2# Check if the drive is mappedif [ "$(mount | grep -c $drive_dir)" -eq 0 ]; thenecho "Drive $1 is not currently mapped."exitfi# Try a simple unmount. This will fail if some process has open files on the share.umount $drive_dirif [ $? -ne 0 ]; then# Prompt the user. This is a "dialog box" of sorts.echo -n "Someone may be using this drive. Continue (Y/N)? "read ok# If the user says Y, try to force the unmount.if [ "$ok" = "y" -o "$ok" = "Y" ]; thenumount -f $drive_dirfifi# Finally, verify the mount is really gone:if [ "$(mount | grep -c $drive_dir)" -ne 0 ]; thenecho "Unable to unmap drive $1, giving up."exitfi# before removing the directoryrmdir $drive_dir
Принтеры настраиваются добавлением записей в файл /etc/printcap (конечно если вы не используете другую print-архитектуру). Output-фильтр для каждого принтера должен быть скрипт по типу того, который мы обсуждали ранее, но подстроенный, чтобы соответствовать языку управления принтером. Скрипт не использует GhostScript, вместо этого он просто вызывает драйвер, поставляемый производителем принтера. Именно так и работает мой принтер Lexmark.
Чтобы отпечатать файл потребуется использовать такую команду:
$ lp -d SALESPRINTER sales_report.ps
Не правда ли просто? Однако за этой командой кроется сложная цепочка событий, которые протекают в фоновом режиме.
Опишем этот процесс в общих чертах:
На любом из этих шагов может случиться неприятность, которая не даст процессу окончиться нормально. Если вы столкнулись с такими проблемами, то необходимо методично проверить каждый из перечисленных выше шагов.
<< Графические клиенты | Multi Tool Linux | Практикум >>