kirpichtion 15.05.2010 12:48

СкриптыСкрипт бэкапа (bash)

Публикую скрипт, которым я сохраняю свои проекты в несколько хранилищ одновременно.

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/bin/bash

# Скрипт для быстрого бэкапа отдельных проектов в несколько хранилищ
# Принимает для аргумента. Первый, имя проекта. Второй, комментарий
#
# Автор: Кирилл Власов
# Почта: kirpichtion@gmail.com

# Папка куда копировать проекты
DIRECTORY="/path/to/storage"

# Текущее время
DATE=`date +"%Y-%m-%d-%H-%M-%S"`

# Функция копирования проекта в хранилище на диске
function copyFiles {
if < ! -d $DIRECTORY"/"$2 >; then
mkdir $DIRECTORY"/"$2
echo "Create directory $DIRECTORY/$2"
fi

cp -r $1 $DIRECTORY"/"$2"/"$DATE
echo "Files from $1 to $DIRECTORY/$2 were coping"
}

# Функция svn коммита (требуется доработка)
function svnCommit {
echo "Enter SVN username:"
read username

echo "Enter SVN password:"
read password

cd $1

# По уродски. Пока хз как сделать красиво
if < "$2" >; then
svn commit --message "$2" --username $username --password $password
else
svn commit --username $username --password $password
fi
}

if < $1 >; then
case $1 in
social-enging)
path="/home/social"

copyFiles $path "$1"
svnCommit $path "$2"
;;
xtwitter)
path="/home/kirill/www/xtwitter"

copyFiles $path "$1"
svnCommit $path "$2"
esac
fi

echo "Backup is complete"



Тэги: backup bash script
+ 0 -
Похожие Поделиться

Shtsh 15.05.2010 12:52 #
А чем rsync не устраивает?
Username 15.05.2010 13:19 #
svn наверно не очень тут катит. Таки бинарников куда больше обычно у людей. Алсо, по-моему у cp есть опция показывать прогресс копирования. Ну всунь ее, чо. И к домашней категории обращайся по ~/, чо.
kirpichtion 15.05.2010 13:25 #
Алсо, по-моему у cp есть опция показывать прогресс копирования.

Вы об -v ?
Username 15.05.2010 14:13 #
да, и по-моему, ее как-то хитрожопно можно обработать.
Shtsh 15.05.2010 14:18 #
всё-таки думаю, что лучше будет rsync --progress для этих целей юзать
Username 15.05.2010 14:26 #
Да я тоже так считаю. Ну он же писал, старался.
muhas 15.05.2010 18:52 #
-g
всё пытались впихнуть в основную ветку, но воз и ныне там

http://hatred.homelinux.net/wiki/zhurnal/2010-05-13_16.34_rezervnoe_kopirovanie_pri_pomoschi_rsync_ssh
человек писал неплохой велосипед мордой к рсинку, который кстати можно(я уже посмотрел, это достаточно легко) к arch-backup модулем присобачить
xT 16.05.2010 13:27 #
svn наверно не очень тут катит. Таки бинарников куда больше обычно у людей.

так он про бэкап _проектов_ пишет, исходный код жЭ
Aleksdem 15.05.2010 15:48 #
я так копирую...

#!/usr/bin/expect -f
set timeout 100
set PASS "пароль!"
set USER "пользователь!"

spawn scp -P port $USER@сайт.ru:/путь/файл /куда копировать
expect "password: "
send "$PASS\r"
expect eof
muhas 15.05.2010 18:54 #
expect
напиши, плз, заметку о нем - вещь полезная да мало кто знает о нем и тем более о применении(конвееров видимо хватает). максимум о yes вспоминают