Як оновити веб-пакет програм із ZIP-файлу з командного рядка?


1

У мене на моєму сервері Linux встановлений пакет програмного забезпечення Web. Я завантажив оновлення в ZIP-файл, і я хочу переписати лише те, що змінилося. (Наприклад, усі основні файли слід замінити, але всі додані файли не слід торкатися.) Як це зробити з командного рядка?

Мій метод полягав би в тому, щоб розпакувати його на своєму персональному комп’ютері і потім завантажити змінені файли за допомогою файлового менеджера GUI, але я хочу навчитися робити це з командного рядка.

У моєму випадку я намагаюся оновити ВАШЕ ПОЛОЖЕННЯ на сервері Ubuntu, але питання здається загальноприйнятним для більшості програмного забезпечення в Інтернеті, наприклад WordPress або подібного.


Один з можливих способів: використовувати find -mtime xxx -exec chmod -r {} \;для виводу на R / O файли, які були змінені після певної дати, а потім скопіювати їх. Але я не впевнений, що ваш метод все-таки забезпечує працюючий сервер, вам, можливо, доведеться інтегрувати зміни в оновлення.
ксеноїд

Відповіді:


1

Отже, один із найпростіших способів, який вам приходить на думку - це завантажити zip-файл, витягнути його десь тимчасово, видалити файли, які вам не потрібні, а потім замінити файли YOURLS на оновлені, які ви тільки що завантажили.

Щоб завантажити файл (за допомогою wget або curl) та витягнути його у тимчасовий каталог:

cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip

або

curl http://linktozipfile/file.zip -o file.zip

тоді

unzip file.zip

Тепер ми можемо вирішити, які файли нам не потрібні, і видалити їх за допомогою інструмента rm (delete / delete).

rm config.php
rm someotherfileidontwannareplace.php

Тоді ми можемо замінити всі файли, перемістивши всі наші оновлені файли в один і той же каталог і тим самим замінивши старі файли.

cd ..
rsync -av newfolder/ oldfolder/

Якщо нам просто потрібно додати нові файли, тоді ми можемо зробити аналогічний метод, але використовувати --existingпрапор на mv, щоб не перезаписати існуючі файли.

Це виглядало б так

cd /tmp/
mkdir update
cd update
wget http://linktozipfile/file.zip
unzip file.zip
cd ..
rsync -av --existing newfolder/ oldfolder/

Я повинен був бути більш чітким. config.phpФайл що - то додав я. Пакет поставляється з a config-sample.php. Тому все, що мені потрібно зробити, - це перемістити що-небудь із ZIP-файлу у каталог веб-серверів, залишаючи в спокої все, що я додав.
Stephenwade

Чи це також збереже речі в папках? Наприклад, буде переміщена майже порожня папка з ZIP-файлу вгорі папки, в якій є ще багато речей, і збереже всі додані вами речі, чи замінить її всю папку?
Stephenwade
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.