Задача такая:
Находясь в линукс - или freebsd - локальной машине, необходимо подключиться по ssh, соединиться с хостом удаленной базы - бд и сайт на разных хостах - после чего выполнить mysqldump и затем полученный дамп скопировать себе в папку. Нужно, чтобы все это дело последовательно обрабатывалось простым скриптом и было записано в крон - в принципе, все основное таким именно простейшим в одну строчку скриптом сделал, вышло где то так
Код: Выделить всё
#!/bin/sh
BACKUPFILE=/home/user/dumps/db_`date +%H:%M_%d%m%y`.sql.gz
ssh user@mysite.com 'mysqldump -u dbuser -ppassword db_mydb -h dbhost | gzip' > ${BACKUPFILE}
Ну вот, в принципе, прописал в кроне и все работает.
опционально можно еще добавить строчку типа -
Код: Выделить всё
/usr/bin/gunzip < ${BACKUPFILE} | /usr/local/bin/mysql -u dbuser -ppassword db_mydb
- если без крона, то можно без полных путей, и тогда последним действием будет рестор базы на локалхосте....
Имена специально хочу делать с датой и временем, и вот почему.
Единственное, что не могу понять. Надо, чтобы этих дампов не собиралось там очень уж много. Ну скажем, я делаю бекап регулярно, каждый час.
Нафига мне там 24 штуки в сутки чтобы хранились и копились? Надо добавить, чтобы скрипт выполнял проверку на число файлов в директории, и если их там больше скажем 3-х, все старые удалял, оставляя только 3 последних, по времени создания или по именам файлов, в которых как раз продублировано время создания.
ps:
вот щас подумал, получается такая штука.
каждый новый дамп будет не больше и не меньше, а только и всегда четвертым, если я хочу оставлять скажем три файла, то мне надо удалять всегда один - старейший, ну, или, по логике, имеющий наименьший размер..
Вроде просто все, но я на линуксы в общем только недавно начал более-менее пристально смотреть, с синтксисом вообще каша в голове,
так что, если кому не сложно, напишите please, как вы себе этот код видите...