1 (24.04.2012 00:59:04 отредактировано Rassol2)

Сидел я тут за чашечкой кофя с коньяком разглядуя скрипт запуска игрового сервера и понял что не так все сложно (в последствии понял как я ошибся)
решил я в целях САМОРАЗВИТИЯ наваять что то мелкое, да бы почувствовать как это ...
в итоге мысли пошли дальше, а знания уперлись в подгузник.
собственно скриптик

#!/bin/bash
# Первый скрит Rassol2

# Тут набор перменных, и надеюсь это будет работать. 
dir1='/home/rassol2/Dropbox'
dir2='/home/rassol2/Dropbox/bd'
file='bd3'
# Добавляем в архив то что нам нужно. 
cd $dir1
tar -cf 1.tar $file
cp 1.tar $dir2
# Теперь подчищаем следы.
cd $dir1
rm -f 1.tar
# Как бы финиш все работает. 

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

Хотел еше добавить что бы архивировало с паролем, начал лазить по инету и там писалось добавьте ключ -P но у меня что то не вышло. ac
Еше не смог разобраться как присвоить архиву имя в виде даты когда сделали данный архив.

Так же в будущем хотел бы освоить как запилить что бы скрипт проверял содержимое файла на определенный текст и после обнаружения добавляла в начало этой строки # (ну уже не этот скриптик) посоветуйте мануал, где можно почитать как сделать что бы читался файл и проверялось содержимое.

Для меня это все чуждо, но все же для развлекуха интереснее многих игрушечек.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

2

Rassol2, про маны не забывайте bx

Rassol2 пишет:

как присвоить архиву имя в виде даты

Можно так:

tar -cvf $(date).tar
Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

3

yars
для того человека который знает тока 3 переменных консоли написать этот супер легкий скрипт без Манов нереально. но я сделал это. РАДОСНО

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

4

я так понял критики ждёте? пожалуйста...

Rassol2 пишет:

tar -cf 1.tar $file

какой смысл тарить один файл? хоть бы сжали чем-нить...
+ в качестве упражнения: сократите основную часть скрипта с 5-ти до 2х строк, внимание на ключ -C tar'а.

Rassol2 пишет:

Хотел еше добавить что бы архивировало с паролем, начал лазить по инету и там писалось добавьте ключ -P но у меня что то не вышло.

tar по идее шифрованием не должен заведовать...

Rassol2 пишет:

Еше не смог разобраться как присвоить архиву имя в виде даты когда сделали данный архив.

echo "/tmp/$(date +%Y-%m-%d).tar.gz"
идея понятна?

Rassol2 пишет:

так же хотел бы освоить как запилить что бы скрипт проверял содержимое файла на определенный текст и после обнаружения добавляла в начало этой строки #

не понял, но по ключевым словам похоже, что это делается через sed или awk... но это уже другая история...

95% процентов проблем находятся между клавиатурой и стулом.

5

#!/bin/bash -x
# Первый шаг Rassol2

# Тут набор переменных, и надеюсь это будет работать. 
dir1='/home/rassol2/Dropbox'
dir2='/home/rassol2/Dropbox/bd'
file='bd3'
# Добавляем в архив то что нам нужно. 
cd $dir1
tar -cvf $(date).tar $file
cp $(date).tar $dir2
# Теперь подчищаем следы.
cd $dir1
rm -f $(date).tar
# Как бы финиш все работает. 
sleep 10

Типо оно будет создавать архив и удалять, после перемещения. поскольку дата совпадает. Но правда ничего не вышло, и вывод ошибки был громадный.
Не кричите на меня примите это как будто ребенок хочет научится ездить на велосипеде, и он не может понять почему у него не выходит. Слава богу тут из за ошибок коленки зеленкой смазывать не нужно.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

6 (24.04.2012 01:17:32 отредактировано Rassol2)

Fat-Zer пишет:

echo "/tmp/$(date +%Y-%m-%d).tar.gz"

а все понял, что зря я это затеял.  Так как для меня это космос.

я так понял критики ждёте? пожалуйста...

не я не хвастался, и понимаю что я на уровне неондертальца после зимней спячки. Мне просто интересно как это все работает, появилась свободная минутка и я решил попробовать. Ранние не работал ни с чем кроме html  и то тока в режиме копипаст...

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

7

http://www.opennet.ru/docs/RUS/bash_scripting_guide/
Go, go, go. ab

«Я устал, я ухожу.»

8

Rassol2, на самом деле не все так страшно, каждый из нас начинал с начала. На счет 'что почитать' - единственный и неповторимый bash scripting guide. Также читайте man. Cо временем научитесь читать чужой код и брать на вооружение. Все познается с трудом и временем.

— Ты кто?
— Часть силы той, что без числа
Творит добро, всему желая зла. © Фауст

9

Rassol2 пишет:

а все понял, что зря я это затеял.  Так как для меня это космос.

ой да не прибедняйтесь...

Rassol2 пишет:

Мне просто интересно как это все работает, появилась свободная минутка и я решил попробовать

я вроде и изложил всё болей-менее корректно... вы же не собираетесь останавливаться на этом? а дальше двигаясь не видя ошибок не возможно и опасно, плюс постарался явно их не указывать... самому искать полезней...
на ABS уже ссылочку дали...

95% процентов проблем находятся между клавиатурой и стулом.

10

riso пишет:

Rassol2, на самом деле не все так страшно, каждый из нас начинал с начала. На счет 'что почитать' - единственный и неповторимый bash scripting guide. Также читайте man. Cо временем научитесь читать чужой код и брать на вооружение. Все познается с трудом и временем.

спс. Но вот за что я не люблю подобные маны что для того что бы найти именно то что мне нужно я прочту кучу ненужного.
И вообще заметил что бы найти нужную информацию, (не считая случаев когда отписуются на форумах), прочтеш 10 тем из которых тока одна будет косвенно связана стой или иной проблемой которую ты пытался решить.
Ну бежать некуда мне. Попробую приживить дату к архиву. да и манчик полистаю.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

11

зря вы так.  Рано или поздно придется прочесть. Тем более если оно вам сейчас не нужно, понадобиться после. Но если нет настроя и желания - забейте.

— Ты кто?
— Часть силы той, что без числа
Творит добро, всему желая зла. © Фауст

12

зря вы так.  Рано или поздно придется прочесть. Тем более если оно вам сейчас не нужно, понадобиться после. Но если нет настроя и желания - забейте.

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

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

13

до написания того кода что я выложил выше я  и не предполагал что сам могу что то подобное сделать, а теперь понимаю что вопрос только в красных глазах от чтения манов.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

14 (24.04.2012 08:13:05 отредактировано XliN)

Вот самый простой скриптик дя бекапа. Сам писал и тоже знаю только азы.

#!/bin/bash

SOURCE_DATABASE="/home/parus/BASE/"
BACKUP_DATABASE="/mnt/backup/"
log_file="/var/log/parus_new_script.log"

date=`date "+%Y-%m-%d"`
date_day=`date "+%w"`

[ -d $BACKUP_DATABASE ] || mkdir -pv $BACKUP_DATABASE

if [[ ! `date -d"$date_day" +%w` = 6 && ! `date -d"$date_day" +%w` = 0 ]]; then
    tar -czf "${BACKUP_DATABASE}parus-"$date".tar.gz" $SOURCE_DATABASE || return $?
    echo "`date -d"$date" +%Y-%m-%d` Backup Parus database in $COPY_DIR successfully" >> $log_file
else
    echo "`date -d"$date" +%Y-%m-%d` Резервное копирование базы Паруса не выполнено, т.к. сегодня $(date +%A)" >> $log_file
fi
MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

15 (12.05.2012 04:02:57 отредактировано Rassol2)

Возник еше маленький вопрос не нашел на него ответ, прошу помощи.
Вот есть 3 директории а в них куча папок и файлов

dir1
dir2
dir3 

в которые каждый день присылают кучу всякого мусора.
Я эти директории копирую в dir4 с ключем cp -ru но мне нужно что бы из этих директорий копировало только файлы имеюшие определенное расширение ac
как это сделать, вообще ключ подобный для cp я не нашел ac

Подскажите что нужно добавить к

cp -ru dima /home/rassol2/beckup

чтобы с этих директорий скопировало только те файлы что имеют расширение mp3 avi mp4

Заранее спс.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

16

Rassol2 пишет:

Я эти директории копирую в dir4 с ключем cp -ru но мне нужно что бы из этих директорий копировало только файлы имеюшие определенное расширение как это сделать, вообще ключ подобный для cp я не нашел

если их не много, то cp dir1/*.{avi,mp3,mp4} /path/to/backup
если много, то надо пользоваться find'ом...

95% процентов проблем находятся между клавиатурой и стулом.

17

хотя сходу еше 1 вопрос.

Нужные файлы хочу копировать на удаленный ФТП
как подключится нашел, а вот как теперь как копировать в открытое соединение с FTP неясно.

как задать скопировать dima в фтп, в определенную директорию?
ab

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

18

если их не много, то cp dir1/*.{avi,mp3,mp4} /path/to/backup
если много, то надо пользоваться find'ом...

Смысл в том что самих файлов с нужным расширением в каждой директории дето тысяча, но каждый день прибавляется дето по 10 новых файлов, и именно их нужно копировать.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

19

Rassol2 пишет:

Смысл в том что самих файлов с нужным расширением в каждой директории дето тысяча, но каждый день прибавляется дето по 10 новых файлов, и именно их нужно копировать.

тогда при создании бекапа делаете touch backup/timestamp и в опциях параметрах find'а смотрите -anewer.
далее с помощью man'а сами додумаете?

95% процентов проблем находятся между клавиатурой и стулом.

20

поделитесь ссылками на ман.
А то я вообще не знаю что такое этот touch

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

21

Rassol2 пишет:

поделитесь ссылками на ман.
А то я вообще не знаю что такое этот touch

Внезапно — http://www.google.by/search?q=man+touch … nt=firefox

Был, был и весь вышел...

22

Lupo Alberto пишет:
Rassol2 пишет:

поделитесь ссылками на ман.
А то я вообще не знаю что такое этот touch

Внезапно — http://www.google.by/search?q=man+touch … nt=firefox

когда я вводил точ мне выбивало напостой тач еппл бред одним словом.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

23

Rassol2 пишет:

Смысл в том что самих файлов с нужным расширением в каждой директории дето тысяча, но каждый день прибавляется дето по 10 новых файлов, и именно их нужно копировать.

Fat-Zer пишет:

тогда при создании бекапа делаете touch backup/timestamp и в опциях параметрах find'а смотрите -anewer.
далее с помощью man'а сами додумаете?

Вместо этого я бы воспользовался опциями -mtime, -ctime команды find.

Был, был и весь вышел...

24

Rassol2 пишет:

когда я вводил точ мне выбивало напостой тач еппл бред одним словом.

Карму где-то испортили ag

Был, был и весь вышел...

25

может это наглость с моей стороны, но можно пример строки копирование с этим точ.
Я им не пользовался и не представляю как должна выглядеть подобная строка

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

26

Создаём временный файл с текущей отметкой времени

touch /tmp/file.tmp

...ждём ag
Копируем все файлы из директории DIR, которые появились после создания временного файла, в директорию NEW_DIR:

find DIR -newer /tmp/file.tmp -exec cp {} NEW_DIR \;
Был, был и весь вышел...

27

Lupo Alberto пишет:

Внезапно — http://www.google.by/search?q=man+touch … nt=firefox

Еще более внезапно, гуглить не нужно: Wiki:ru_RU: touch

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

28

ок а теперь такой вопрос.
собрал я нужные мне файлы, и как мне их отправить в по фтп ?
Файлы лежат тут.

/home/rassol2/doc/test/beckup_bz

отправить мне нужно их в фтп.
подключаюсь

rassol2@rassol2:~$ ftp 11.222.333.444
Connected to 11.222.333.444.
220 ProFTPD 1.3.1 Server (debian) [::ffff:11.222.333.444]
Name (11.222.333.444:rassol2): dima
331 Password required for dima
Password:
230 User dima logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

все соединился, а вот как теперь отправить файлы туда ? Дак и желательно не в корень фтп а в одну из директорий. У меня уже голова покипела от разгадки задачи.
В подключенном FTP соединении можно тоже лазить при помощи cd /
И предполагаю что строка копирования должна выглядеть примерно так

cp -ru beckup_bz ftp /sklad

Но ....

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"

29

Я бы на твоём месте смонтировал FTP-сервер как-нибудь через fuse куда-нибудь в /temp, скопировал файлы обычными средствами, и отмонтировал в конце.

30

и как это сделать ?
Предложение нанотихнологий это хорошо осталось освоить их.

Никогда не бойся делать то, что ты не умеешь. Помни, "КОВЧЕГ" был построен ЛЮБИТЕЛЕМ. ПРОФЕССИОНАЛЫ построили "ТИТАНИК"