1. Начало
  2. Сървъри
  3. Контролен панел (VPS)
  4. ISPConfig
  5. Качване и сваляне на файлове на VPS през SSH (ISPConfig)

Качване и сваляне на файлове на VPS през SSH (ISPConfig)

Качването и свалянето на файлове от и във Вашия виртуален сървър с ISPConfig панел, може да се извършва през създаден FTP потребител или през SSH достъп.

Когато качвате или сваляте файлове през SSH, връзката със сървъра е криптирана и сигурна. Поради това този начин за достъп и управление на сървъра е препоръчителен.

След като сте добавили домейн в ISPConfig, можете да качвате съдържание в директорията му на сървъра.

Бележка: Вместо root потребителя за сървъра, използвайте допълнително създаден SSH потребител (Sites » Shell-User). Допълнителният SSH потребител се създава за определен сайт, така че той има достъп само до директориите за този сайт. Този начин за достъп и манипулация на съдържанието на сървъра е по-сигурно, тъй като е ограничен само до конкретния акаунт, в който се намира сайта.

Качване на файлове на сървъра

Качването на файлове на сървъра може да се извърши с различни SSH команди като scp и rsync. Можете да качите един определен файл, цяла директория с файлове или да синхронизирате съдържание от локална директория с такава на сървъра.

Ако сте с операционна система Windows, можете да използвате командите rsync и scp като инсталирате cygwin с пакети rsync и openssh от официалния сайт – https://www.cygwin.com/. Cygwin е голяма колекция от инструменти, които предоставят функционалност, подобна на дистрибуция на Linux в Windows.

Системният път до директорията

За да качите съдържание на сървъра през SSH, трябва да знаете какъв е пътят до директорията, в която ще качвате файловете. Пътят до основната директория за сайта (Document Root) можете да видите в настройките му в ISPConfig (Sites » клик върху домейна).

Системният път до директорита ще изглежда по подобен начин:

/var/www/clients/client0/web7/

Създаване на допълнителен SSH потребител

Важно: За да може да използвате rsync и scp e нужно да си създадете SSH потребител през контролния панел ISPConfig. Използването на специфичен потребител, асоцииран с Вашия сайт, гарантира запазването на ownership на всички файлове и директории.

За да създадете специален SSH потребител, който ще се използва само за дадения сайт, достъпете Sites в ISPConfig и изберете Shell User » Add new Shell-User.

Създаване на SSH потребител в ISPConfig.
Създаване на SSH потребител в ISPConfig.

Тук е важно да изберете домейна, за който ще създавате Вашия SSH потребител – от опция Site (ред 1) и парола.

За опцията Chroot Shell трябва да остане None, за да имате възможност да излезете от Вашия homerdir* и да пишете в директория web (намираща се в DocumentRoot на Вашия сайт).

*homedir – домашна директория на новосъздадения shell потребител, която е различна от DocumentRoot на Вашия сайт.

Например потребителят defaultmyuser е с homedir:

/var/www/mysupersite.com/home/defaultmyuser

а файловете на сайта се намират в:

/var/www/mysupersite.com/web/

Качване на един файл през SSH (scp)

За да качите само един определен файл от Вашия компютър, може да използвате програмата SCP (OpenSSH secure file copy).

Например файлът myfile.txt се намира локално в /home/shsupport/ и искаме да го качим в директория /var/www/clients/client0/web7/web/.

Качване на един файл:

scp -P 1022 /home/shsupport/myfile.txt defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/

След стартиране на командата е нужно да въведете паролата за SSH потребителя си.

Командата се състои основно от следните части:

  • -P 1022 – чрез опцията -P се задава SSH порт за връзка с отдалечената машина.
  • /home/shsupport/myfile.file – source (източник); системният път на файла във Вашето устройство. 
  • defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/ – destination (дестинация), съдържа – SSH-потребител@IP-адрес-на-сървъра и системният път на директорията на сървъра.

defaultmyuser – заменете с името на създадения SSH потребител

server-IP-address – заменете с IP адреса на сървъра

Качване на директория с файлове през SSH (rsync)

Качване на директория с файлове от локалния компютър на VPS може да се извърши с програмата rsync. За целта трябва да я имате инсталирана на Вашия компютър.

В нашия пример файловете, които искаме да качим, се намират в директория site на нашия компютър и използваме потребител: shsupport с homedir: /home/shsupport.

Влизаме в директория /home/shsupport, където се намира директория site с нашите файлове.

Качване на директория с файлове:

rsync -av --progress -e 'ssh -p 1022' /home/shsupport/site/ defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/

След стартиране на командата е нужно да въведете паролата за SSH потребителя си.

Командата се състои основно от следните части:

  • Source: /home/shsupport/site/ – това е абсолютният път, от където rsync ще вземе файловете и ще ги качи в Destination.
  • Destination: /var/www/clients/client0/web7/web/ – директория, намираща се на сървъра.

Останалите опции в командата, които се използват при необходимост:

  • – използва се за архиви;
  • -v – от verbose, за да получавате информация по време на прехвърлянето на файловете;
  • --progress – за да може да наблюдавате прогреса в проценти на всеки файл, който качвате;
  • – директива, чрез която може да оказвате различни SSH опции. В нашия пример задаваме индивидуален SSH port – 1022, но е възможно да окажете път до SSH ключ, индивидуален SSH потребител или други.

defaultmyuser – заменете с името на създадения SSH потребител

server-IP-address – заменете с IP адреса на сървъра

Всички възможни опции на rsync може да разгледате чрез командата:

man rsync

Синхронизация на вече качено съдържание през SSH (rsync)

Rsync се използва и при нужда от синхронизация на вече качено съдържание в директория на сървъра.

Например вече имате съществуващ сайт, качен на сървъра в директория /var/www/clients/client0/web7/web/, но сте направили промени по локалното копие на сайта, намиращо се на Вашия компютър. За да уеднаквите информацията от локалната директория site и сървърната директория /var/www/clients/client0/web7/web/, може да използвате rsync.

Синхронизиране на локална и сървърна директория:

rsync -av –progress --delete -e 'ssh -p 1022' /home/shsupport/site/ defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/

defaultmyuser – заменете с името на създадения SSH потребител

server-IP-address – заменете с IP адреса на сървъра

След стартиране на командата е нужно да въведете паролата за SSH потребителя си.

При използване на опция --delete ще се изтрие всичко в дестинацията, което липсва в източника (от примера директория site). 

Сваляне на файлове от сървъра

Свалянето на файлове от VPS се извършва подобно на качването. В командите scp и rsync единствено трябва да смените местата на източник (source) с дестинация (destination).

Сваляне на определен файл от сървъра със scp:

scp -P 1022 defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/myfile.txt /home/shsupport/site/

defaultmyuser – заменете с името на създадения SSH потребител

server-IP-address – заменете с IP адреса на сървъра

Сваляне на всички файлове от сървърна в локална директория с rsync: 

rsync -av --progress -e 'ssh -p 1022' defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/ /home/shsupport/site/

Синхронизация на съдържание от сървърна директория в локална директория:

rsync -av --progress –delete -e 'ssh -p 1022' defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/ /home/shsupport/site/

При използване на опция --delete към rsync ще се изтрие всичко в дестинацията, което липсва в източника (от примера директория site).

След командата е нужно да се въведе паролата за SSH потребителя.

Местата на източник и дестинация са:

  • Източник: defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/
  • Дестинация: /home/shsupport/site/

Съдържанието се взима от директория /var/www/clients/client0/web7/web/, намираща се на сървъра, и се прехвърля в локалната директория /home/shsupport/site/

Важно: Задължително трябва да се съобразите с наклонената черта ( / ) в края на някои директории от примерите.

Например, ако изпълните:

rsync -av --progress -e 'ssh -p 1022' /home/shsupport/site defaultmyuser@server-IP-address:/var/www/clients/client0/web7/web/

В този пример директорията-източник е без „/“ накрая: /home/shsupport/site

В такъв случай на сървъра ще се създаде директорията site, в която ще се качи съдържанието, вместо в директория web. Когато няма наклонена черта след името на директорията, и такава директория не съществува, тя се създава. Ако директорията съществува, съдържанието ѝ ще бъде уеднаквено с това от източника.

За по-напреднали: Можете да използвате rsync и scp с потребителя root, но това ще промени ownership на качените файлове и директории, и ще бъде нужно да се коригират ръчно след качването.


Обновена: 09.04.2021

Беше ли Ви полезна тази статия?

Вижте още