Я написал такой сценарий оболочки, который загружает файлы по ftp на мой сервер развертывания. Этот сценарий отлично работает, если вам нужно полное развертывание, то есть весь проект за один раз. но проблема в том, что я изменяю конкретный файл на локальном компьютере, и теперь я хочу, чтобы он перезаписывал существующий файл на сервере, используя ftp, который он не перезаписывает.
MKDIR=`for directory in $FOLDERS; do echo "mkd \"${directory}\""; done`
DELETE=`for file in $DFILES; do echo "delete \"${file}\""; done`
ATTACH=`for file in $FILES; do echo "put \"${file}\""; done`
IFS=$ORIGIFS
# Send updates to server
ftp -nv <<EOF
open $FTPHOST
user $FTPUSER $FTPPASS
binary
cd $FTPDIR
$MKDIR
$ATTACH
quit
EOF
Где: FOLDERS: содержит каталоги для создания, DELETE - это строка, содержащая список удаленных файлов, ATTACH - это список файлов, которые были изменены и должны быть перезаписаны на сервере, которые существуют.
После этого, когда я запускаю его второй раз после модификации существующих файлов:
local: ./testproject/trunk/test.php ./svnupdate.txt remote: ./testproject/trunk/test.php ./svnupdate.txt
local: ./testproject/trunk/test.php ./svnupdate.txt: No such file or directory