Вы не вошли.
Статья в процессе, я еще "плаваю" в некоторых вопросах, но начало уже есть, значит можно выкладывать и обсуждать. Хочу описать каждый этап в мельчайших подробностях, но пояснения буду делать постепенно как и содержание, вещи которые я буду описывать могу показаться слишком банальны, но я делаю шпаргалку в первую очередь для себя, и людей которые в этом мало разбираются.
Хочу рассмотреть:
1. Общий ресурс с гостевым доступом и доступом через авторизацию + задать владельца для каталога + права на чтение и редактирование.
2. Возможные варианты автоматического резервного копирования файлов (бэкап полный + инкрементный)
3. Шифрование раздела или каталога который является общим ресурсом.
Устанавливал debian6 с cd-диска, в локальной сети есть интернет-шлюз, поэтому на этапе установки настроил сетевой интерфейс и согласился установить все апдейты. На этапе установки выбрал:
Установить все в один раздел(рекоммендуется новичкам), из компонентов сервер ssh и gui, создал пользователя user.
1. Для удобства можно отключить устройства ввода/вывода и перейти к удаленной настройке по ssh. Создаю новую сессию в putty
Category->window->translation remote character set-> UTF-8 для корректного отображения кириллицы
Category->session вписываю ip/hostname 192.168.1.10, Connection type: SSH, Saved Sessions: debian жму кнопку save.
Теперь я всегда смогу создать новую сессию с заданными параметрами.
Все дальнейшие действия я буду делать авторизовавшись как root.
2. Следующий обязательный этап как мне кажется необходимо закомментировать cdrom в /etc/apt/source.list, чтобы при выполнении установке пакетов через apt-get install обращение было не к cdrom, а сразу к репозиториям.
nano /etc/apt/source.list
#deb cdrom:[Debian GNU/Linux 6.0.7 _Squeeze_ - Official i386 CD Binary-1 20130223-13:15]/ squeeze main
3. Устанавливаю необходимые пакеты
apt-get update
apt-get install samba
Перед началом редактирования /etc/samba/smb.conf переименую его:
mv /etc/samba/smb.conf /etc/samba.smb.conf.old
Пускай лежит в том же каталоге на всякий случай.
Создаю новый smb.conf
nano /etc/samba/smb.conf
4. Рассмотрим пример с расшаренным каталогом /home/user/data
создаем mkdir /home/user/data
Даже если рашарить этот каталог никто не сможет создавать/удалять и редактировать файлы находящиеся а нем, кроме владельца каталога-родителя. Переходим в целевой каталог cd /home/user/data/. Командой chmod -R 777 * изменяем права доступа к каталогу и всем дочерним объектам рекурсивно. Теперь каждый пользователь может создавать/удалять и редактировать файлы в /home/user/data ( про chmod на wiki)
Расшариваю с помощу samba:
/etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = %h
security = share
guest ok = yes
unix charset = utf8
dos charset = cp1251
display charset = cp1251
[data]
path = /home/user/data
guest ok = Yes
guest only = Yes
writeable = Yes
Применяю изменения в конфигурации
/etc/init.d/samba restart
5. Второй вариант конфигурации более подходит для корпоративных хранилищ, в этом примере есть три пользователя: user1, user2, user3. Причем user2 и user3 должны иметь полный доступ только к своим каталогам, и не иметь доступа к каталогам других пользователей. user1 должен иметь полный доступ нетолько в свой каталог, но и в каталог других пользователей.
mkdir /home/user/data
Создадим каталоги пользователей:
mkdir /home/user/data/user1
mkdir /home/user/data/user2
mkdir /home/user/data/user3
cd /home/user/data/. Командой chmod -R 777 * изменяем права доступа к каталогу и всем дочерним объектам рекурсивно.
Создадим пользователей в системе:
useradd -c "user1" -s /sbin/nologin user1
useradd -c "user2" -s /sbin/nologin user2
useradd -c "user3" -s /sbin/nologin user3
а затем в базе данных samba:
smbpasswd -a user1
password:
smbpasswd -a user2
password:
smbpasswd -a user3
password:
nano /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = %h server
security = user
guest ok = no
unix charset = utf8
dos charset = cp1251
display charset = cp1251
[user1]
browsable = yes
path = /home/user/data/user1
valid users = user1
write list = user1
[user2]
browsable = yes
path = /home/user/data/user2
valid users = user1, user2
write list = user1, user2
[user3]
browsable = yes
path = /home/user/data/user3
valid users = user1, user3
write list = user1, user3
Применяю изменения в конфигурации
/etc/init.d/samba restart
Итак предположим нужно один раз в сутки делать полный бэкап каталога /home/user/data в каталог /home/user/data/backup
Разовый бэкап можно сделать командой:
tar --create --ignore-failed-read --one-file-system --preserve-permissions --recursion --preserve-order --sparse --totals --wildcards --gzip --file=/home/user/backup/`date +%F--%H-%M`.tar.gz /home/user/data
cron может автоматизировать этот процесс, но нужен скрипт в тело которого можно поместить команду tar
nano /home/user/backup.script
#!/bin/
tar --create --ignore-failed-read --one-file-system --preserve-permissions --recursion --preserve-order --sparse --totals --wildcards --gzip --file=/home/user/backup/`date +%F--%H-%M`.tar.gz /home/user/data
http://alex-at.ru/linux/tar-linux
1. /bin/tar - собственно, путь к нашему архиватору, если у вас архиватор в другом месте - укажите правильный путь.
2. --create - говорит, что мы создаем архив.
3. --ignore-failed-read - игнорируем файлы, которые не удалось прочитать, вместо останова с ошибкой - бэкап обычно идет автоматически, и лишние сбои бэкапа нам ни к чему.
4. --one-file-system - запрещает бэкапу выходить за пределы файловой системы. Вы спросите, почему бы нам не убрать эту опцию, и не бэкапить все целиком, указав в качестве пути корень (/). Да потому, что в этом случае в бэкап попадет все содержимое системных файловых систем - /dev /proc /sys, и т.д., чего нам в принципе не нужно, и что может послужить поводом для лишних ошибок в процессе развертывания архива. Не-корневые файловые системы со вложенными файловыми системами вы можете смело бэкапить рекурсивно и целиком, убирая этот параметр, но корневую файловую систему без грамотного создания списка исключений так бэкапить нельзя.
5. --preserve-permissions - эта опция говорит архиватору, что мы хотим сохранить все разрешения сохраняемых файлов.
6. --recursion - мы выполняем бэкап всех файлов и каталогов по указанному пути, а также всех файлов и каталогов всех подкаталогов.
7. --preserve-order - при бэкапе мы сохраняем порядок файлов в каталогах, чтобы после восстановления иметь более-менее точные копии и самих каталогов тоже.
8. --sparse - файлы с наличием "пустот" сохраняем именно с указанием мест и длин пустот, а не как файлы с огромным набором нулей.
9. --totals - в конце процесса выводим информацию о том, сколько данных мы сохранили.
10. --wildcards - разрешаем использовать маски (* и ?) в списке исключений - см. ниже.
11. --verbose - вывод подробной информации о процессе. Если вы не ведете лог, или вас не привлекает перспектива видеть весь список сохраняемых файлов на экране - уберите данный параметр.
12. --gzip - сжимаем архив с помощью GZIP. Если не нужно - уберите. --bzip2 не рекомендую, на практике он не дал выигрыша более 10% при сжатии разнородных данных, а вот потери во времени составили около 80%. Однако, если в сжимаемой файловой системе полно текстовых файлов - логи, например - можете попробовать, на тексте он дает ощутимое преимущество.
13. --file=файл_бэкапа - этот параметр указывает путь к создаваемому файлу бэкапа. Убедитесь, что сам этот путь не попадет в бэкап - а лучше - добавьте путь к файлам бэкапа в список исключений.
14. --listed-incremental=файл_метаданных - этот файл управляет говорит, что мы создаем именно бэкап, и управляет уровнем нашего бэкапа. Подробнее смотрите ниже.
15. --exclude-from=файл_исключений - этот файл содержит список исключений - файлов и каталогов, которые не попадут в бэкап. Пути указываются относительно основного пути бэкапа, без начального слеша. Т.е. если мы бэкапим корень (/) и хотим исключить всю папку /backup - пишем просто backup. Допускаются маски, причем на любых уровнях. Допустим, мы бэкапим каталог /www, в котором находятся подкаталоги пользователей, в которых находятся подкаталоги logs, файлы из которых мы не хотим включать в бэкап. Дописываем в файл исключений строчку */logs/*. Вуаля, сами каталоги вида пользователь/logs в бэкап попадают, а вот файлы из них, и подкаталоги - нет.
16. путь_который_бэкапим - это корневой путь, который мы бэкапим. Если бэкапим каталог /www - так и указываем: /www.
Теперь команду tar ... можно выполнить, выполнить гораздо проще
sh /home/user/backup.script
И каждые сутки cron будет делать это за меня, я лишь задам ему расписание:
crontab -u root -e
* */23 * * * /home/user/backup.script
* * * * * выполняемая команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)
/etc/init.d/cron restart
Редактировался viktor (16.11.2013, 18:39:56)
По поводу резервного копирования, а что если пользователь работает с базой данных 1С и некоторые файлы в ней заблокированы, tar --ignore-failed-read просто пропустит эти файлы или можно их скопировать? В Acronis и Cobain backup в этом случае можно применить теневое резервное копирование, (я таким способом раздел с работающей Windows бэкапил).
Редактировался viktor (30.06.2013, 21:40:54)
Иногда в windows при доступе к расшаренному каталогу необходимо быстро разлогинится одним пользователем и залогинится другим, но windows некоторое время продолжает помнить учетные данные после первой авторизации, даже если не ставить галочку "запомнить". Для того, чтобы быстро разлогинится в cmd пишем net use * /delete.
Если всеже поставили галочку сохранить учетные данные удалить их их хранилища паролей:
в windows7 cmd->control userpasswords2->вкладка дополнительно->управление паролями-> удаляем учетные данные из списка
Редактировался viktor (28.07.2013, 20:49:32)
Все действия выполняются на виртуальной машине, предварительно сделав бэкап. Но в virtualbox не возможно добавить сделанную копию машины в список, из-за совпадающих uuid виртульного жесткого диска существующей и добавляемой машины, даже если предварительно сменить uuid на добавляемой машине, то всеравно будет конфликт при добавлении. Возможно только создание новой машины с резервной копией жесткого диска на которей поменян uuid.
Смена uuid виртуального жесткого диска в cmd windows
cd C:\Program files\Oracle\VirtualBox
vboxmanage intrnalcommands sethduuid "D:\debian\debian.vdi"
http://www.youtube.com/watch?v=y4mmQv-iHlI
В окне менеджера "Файл-> экспорт конфигурации" делает бэкап виртуального жесткого диска и конфигурации оборудования, правда исходный жесткий диск был с расширением .vdi, а после восстановления конфигурации стал .vmdk
Редактировался viktor (04.08.2013, 02:10:19)
Страницы 1
[ Сгенерировано за 0.014 сек, 8 запросов выполнено - Использовано памяти: 1.94 MiB (Пик: 2 MiB) ]