Bash добавляет запись в fstab с помощью сценария [закрыто]

Я новичок в написании сценариев bash и пытаюсь написать сценарий, который добавляет запись для окон cifs поделиться в fstab. Я написал небольшой скрипт, но не уверен, что он будет работать нормально. У меня нет Linux, чтобы его протестировать Вы можете помочь мне улучшить это или исправить? он будет работать в дистрибутиве Debian 7/8 и Ubuntu 12.04

вот мой код:

    #!/bin/bash

    cp -p /etc/fstab /etc/fstab.back-$(date +%F)

    dir_src=//fileserver/share
    dir_tgt=/mount/share
    fsoptions="cifs _netdev,users,rw,auto,users,credentials=/etc/.cifspasswd,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0"

    mkdir -p $dir_tgt
    chown -R `whoami`  $dir_tgt

    echo -e "$dir_src \t\t $dir_tgt \t\t $fsoptions" >> /etc/fstab

    printf "put your windows login: \n"
    read login
    echo -e "username=$login" >> /etc/.cifspasswd
    printf "\n"
    printf "Now put your windows password: \n"
    read password
    echo "password=$password" >> /etc/.cifspasswd
    echo "domain=dom.local" >> /etc/.cifspasswd

    mount -a >> /tmp/mount.log

if [ $? -ne 0]
then 

cat /tmp/mount.log | mail -s " $hostname $username fstab return " -a "FROM:$username@mycompany.com" it@mycompany.com

else

echo " all work fine " | mail -s " fstab ok " -a "FROM:$username@mycompany.com" it@mycompany.com


fi

Спасибо за вашу помощь

-1
задан 30 July 2015 в 01:30
1 ответ

Ваш сценарий не идемпотентный. То есть, если вы запустите его во второй раз, это серьезно что-то сломает.

С такими вещами лучше справится инструмент управления конфигурацией, такой как puppet / chef / etc. Вы выполняете подобные операции через интерфейс, который гарантирует вам идемпотентность.

В вашем скрипте практически нет проверки ошибок. Что произойдет, если ФС доступна только для чтения, что произойдет, если ФС заполнена? Человек, вызывающий скрипт, запустил его от имени пользователя root или забыл и запустил его как непривилегированный пользователь?

Для этого вы можете добавить в скрипт много проверок ошибок, но в какой-то момент вы просто дублируете логику вы получаете от хорошего инструмента управления конфигурацией.

Если это не ясно, я твердо уверен, что вам следует выполнять этот тип задач с помощью инструмента управления конфигурацией.

2
ответ дан 5 December 2019 в 19:25

Теги

Похожие вопросы