LinuxForum.Fans
Тема

Скриптик для начала.

Автор: Rassol2 45 сообщений 4063 просмотров
#247896

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

text
#!/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 но у меня что то не вышло. :(
Еше не смог разобраться как присвоить архиву имя в виде даты когда сделали данный архив.

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

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

#247897

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

"Rassol2" написал:
как присвоить архиву имя в виде даты

Можно так:

text
tar -cvf $(date).tar
#247899

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

#247901

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

"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... но это уже другая история...

#247902
text
#!/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

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

#247904
"Fat-Zer" написал:
echo "/tmp/$(date +%Y-%m-%d).tar.gz"

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

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

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

#247908

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

#247912
"Rassol2" написал:
а все понял, что зря я это затеял.  Так как для меня это космос.

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

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

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

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

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

#247914

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

#247915

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

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

#247916

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

#247924

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

text
#!/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

#251315

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

text
dir1
dir2
dir3 

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

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

text
cp -ru dima /home/rassol2/beckup

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

Заранее спс.

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

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

#251317

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

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

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

#251318

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

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

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

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

#251379

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

Войдите или зарегистрируйтесь, чтобы ответить.