Дано:
Доступ к файлам DokuWiki по FTP.
Задачи:
1. Делать резервные копии (скачивать по FTP).
2. Обновлять DokuWiki (закачивать по FTP).
3. Тренироваться на localhost.
Примеры:
make backup — сделать резервную копию conf и data.
make upgrade — закачать изменённые локальные файлы (кроме conf и data).
make devel — обновить локальную копию.
FTPHOST = ftp.pomorsu.ru
FTPDIR = tphyslab/doku
DESTDIR = /var/www/htdocs/dokuwiki
CWD = $(shell pwd)
MKDIR = mkdir -p
DW_DATA = vqerwev345ec
LO_DATA = data_$(DW_DATA)
DW_CONF = srvw533bvf
LO_CONF = conf_$(DW_CONF)
LO_BACKUP = backup
LFTP = lftp
RSYNC = rsync -a --progress --delete --force
backup: backup-conf backup-data
backup-conf:
$(MKDIR) $(LO_CONF)
$(LFTP) -e \
"mirror -c -e -v \
$(FTPDIR)/$(DW_CONF) $(CWD)/$(LO_CONF); \
exit" $(FTPHOST)
$(CWD)/bin/backup $(LO_CONF)
backup-data:
$(MKDIR) $(LO_DATA)
$(LFTP) -e \
"mirror -c -e -v \
-X cache/* \
$(FTPDIR)/$(DW_DATA) $(CWD)/$(LO_DATA); \
exit" $(FTPHOST)
$(CWD)/bin/backup $(LO_DATA)
upgrade: backup
$(LFTP) -e \
"mirror -c -e -v -R \
-X $(LO_CONF)/ \
-X $(LO_DATA)/ \
-X $(DW_CONF)/ \
-X $(DW_DATA)/ \
-X *.tar.* \
-X $(LO_BACKUP)/ \
-X *~ \
-X .*.swp \
-X .git/* \
-X .gitignore \
-X .directory \
$(CWD) $(FTPDIR); \
exit" $(FTPHOST)
perm:
$(LFTP) -e " \
chmod -R -f a+rwX $(FTPDIR)/$(DW_DATA); \
chmod -R a+rX $(FTPDIR)/$(DW_CONF); \
chmod a+w $(FTPDIR)/$(DW_CONF); \
chmod a+w $(FTPDIR)/$(DW_CONF)/local.php \
$(FTPDIR)/$(DW_CONF)/users.auth.php \
$(FTPDIR)/$(DW_CONF)/acl.auth.php; \
; \
exit" $(FTPHOST)
login:
$(LFTP) $(FTPHOST)
devel:
$(RSYNC) \
--exclude $(LO_CONF)/ \
--exclude $(LO_DATA)/ \
--exclude $(DW_CONF)/ \
--exclude $(DW_DATA)/ \
--exclude *.tar.* \
--exclude $(LO_BACKUP)/ \
--exclude *~ \
--exclude .*.swp \
--exclude .git/* \
--exclude .gitignore \
--exclude .directory \
$(CWD)/ $(DESTDIR)/
if [ ! -d $(DESTDIR)/$(DW_DATA) ]; then \
cp -r $(LO_DATA) $(DESTDIR)/$(DW_DATA); \
chmod -R a+rwX $(DESTDIR)/$(DW_DATA); fi
if [ ! -d $(DESTDIR)/$(DW_CONF) ]; then \
cp -r $(LO_CONF) $(DESTDIR)/$(DW_CONF); \
chmod -R a+rwX $(DESTDIR)/$(DW_CONF); fi
.PHONY: upgrade backup backup-conf backup-data perm login devel