LINUX.ORG.RU

Bash скрипт «Найти и обезвредить».


3

1

Опишу суть задачи. Имеется внешний жесткий диск подключенный к серваку под linux. Имеется комп на котором постоянно «штопают» документы (doc,xls,ppt).

Задача. Нужно чтобы удалённый сервер монтировал сетевой диск данной командой sudo mount.cifs //192.168.1.15/d /media/Share/ --verbose -o username=Наталья

Далее искал все файлы в подкаталогах с расширениями *.doc, *.ppt, *.xls, архивировал их с датой в имени архива и копировал в /media/HardDrive/Backup

Далее монтировался другой сетевой диск, там производится ровно тоже самое sudo mount.cifs //192.168.1.15/с /media/Share/ --verbose -o username=Наталья

После всех операция sudo umount /media/Share

Очень нужно,помогите пожалуйста



Последнее исправление: z-stepan (всего исправлений: 1)
#!/bin/bash

make_my_backup() {
        TEMPDIR=`mktemp -d`
        BAKARCHIVE="bak-$1-`date +%Y.%d.%m`.tar.xz"
        find /media/Share/ -type f \( -iname '*.doc' -o -iname '*.ppt' -o -iname '*xls' \) -exec cp {} $TEMPDIR \;
        tar cvfJ $BAKARCHIVE $TEMPDIR
        mv $BAKARCHIVE /media/HardDrive/Backup
        rm -r $TEMPDIR
}

sudo mount.cifs //192.168.1.15/d /media/Share/ --verbose -o username=Наталья
make_my_backup d
sudo umount /media/Share
sudo mount.cifs //192.168.1.15/с /media/Share/ --verbose -o username=Наталья
make_my_backup c
sudo umount /media/Share
saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 2)
Ответ на: комментарий от saahriktu

Спасибо. Очень оперативно. Сейчас попробую.

z-stepan
() автор топика
Ответ на: комментарий от saahriktu
#!/bin/bash

make_my_backup() {
        TEMPDIR=`mktemp -d`
        BAKARCHIVE="bak-$1-`date +%Y.%d.%m`.tar.xz"
        sudo mount.cifs //192.168.1.15/$1 /media/Share/ --verbose -o username=Наталья
        find /media/Share/ -type f \( -iname '*.doc' -o -iname '*.ppt' -o -iname '*xls' \) -exec cp {} $TEMPDIR \;
        tar cvfJ $BAKARCHIVE $TEMPDIR
        mv $BAKARCHIVE /media/HardDrive/Backup
        rm -r $TEMPDIR
        sudo umount /media/Share
}

make_my_backup d
make_my_backup c
saahriktu ★★★★★
()
Ответ на: комментарий от saahriktu

Все работает, спасибо большое, но есть две больших проблемы.

1) Проблема с русскими именами файлов, вместо русских букв кракозяблы, а это всё рушит. 2) ОООООчень медленная работа, я понимаю, что всё зависит от обьема данных и скорости соединения. Если медленной скоростью работы еще можно принебречь, то с русскими именами......

Можно что-то как-то придумать уважаемые;) ???

z-stepan
() автор топика
Ответ на: комментарий от ABW

Нельзя ли немного подробнее? Можете отредактировать последний пост saahriktu соответствующим образом?

z-stepan
() автор топика
Ответ на: комментарий от z-stepan
#!/bin/bash

make_my_backup() {
        TEMPDIR=`mktemp -d`
        BAKARCHIVE="bak-$1-`date +%Y.%d.%m`.tar.xz"
        sudo mount.cifs //192.168.1.15/$1 /media/Share/ --verbose -o username=Наталья,codepage=cp1251,iocharset=utf8
        find /media/Share/ -type f \( -iname '*.doc' -o -iname '*.ppt' -o -iname '*xls' \) -exec cp {} $TEMPDIR \;
        tar cvfJ $BAKARCHIVE $TEMPDIR
        mv $BAKARCHIVE /media/HardDrive/Backup
        rm -r $TEMPDIR
        sudo umount /media/Share
}

make_my_backup d
make_my_backup c

В случае неправильно прописанных локальной и удалённой локалей (iocharset и codepage) заменить на правильные.

saahriktu ★★★★★
()
Ответ на: комментарий от z-stepan

Вот такой выхлоп.......

pi@iBerry ~ $ sudo backupwin Password: mount.cifs kernel mount options: ip=192.168.1.15,unc=\\192.168.1.15\d,codepage=cp1251,iocharset=utf8,user=Наталья,pass=******** mount error(22): Invalid argument Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) tar: Удаляется начальный `/' из имен объектов /tmp/tmp.RX0AWGHNEW/ umount: /media/Share: not mounted Password: mount.cifs kernel mount options: ip=192.168.1.15,unc=\\192.168.1.15\c,codepage=cp1251,iocharset=utf8,user=Наталья,pass=******** mount error(22): Invalid argument Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) tar: Удаляется начальный `/' из имен объектов /tmp/tmp.H33iwMqAdU/ umount: /media/Share: not mounted

z-stepan
() автор топика
Ответ на: Вот такой выхлоп....... от z-stepan

Ну, ошибка в аргументах mount.cifs. По одной из версий документации должно работать. Возможно, именно в этой версии опции уже несколько другие. Нужно уточнить в документации конкретной версии.

PS. Можно ещё попробовать через mvconv:

#!/bin/bash

for drive in d c ; do
        TEMPDIR=`mktemp -d`
        BAKARCHIVE="bak-$drive-`date +%Y.%d.%m`.tar.xz"
        MPT0="/media/Share/"
        sudo mount.cifs //192.168.1.15/$drive $MPT0 --verbose -o username=Наталья
        find $MPT0 -type f \( -iname '*.doc' -o -iname '*.ppt' -o -iname '*xls' \) -exec cp {} $TEMPDIR \;
        mvconv $TEMPDIR/* f cp1251
        tar cvfJ $BAKARCHIVE $TEMPDIR
        mv $BAKARCHIVE /media/HardDrive/Backup
        rm -r $TEMPDIR
        sudo umount $MPT0
done

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от emulek

Проблемы создал не я) А как раза username

z-stepan
() автор топика

zfs snapshot; zfs send;

anonymous
()
Ответ на: комментарий от d_a

Ее можно обучить только нажать на значок)

z-stepan
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.