Веома уобичајени задатак за веб програмера је постављање једне датотеке из поддиректоријума у ​​вашем развојном пољу у исти поддиректориј на удаљеном серверу. Нажалост, ово се увек завршава као досадан ручни процес који укључује пребацивање директоријума на оба сервера и троши велики временски период.

Дакле, преузео сам на себе да напишем скрипту за скрипту за аутоматизацију за мене, користећи сцп за сигурно копирање датотека. (Важна страна Напомена: фтп је страшно несигуран, користите ВинСЦП умјесто тога)

Главни проблем да се реши био је да моја инсталација ВордПресса на мојој развојној машини има другачији основни директоријум од инсталације на мом серверу. На мом развојном рачунару то је / вар / ввв, а на мом серверу је нешто више као / вар / ввв / ховтогеек / доцс /. Одлучио сам да их пребацим на променљиве на почетку сценарија, овако:

[email protected] RDIR=/var/www/howtogeek/docs LDIR=’/var/www’

Имајте на уму да локални директоријум (ЛДИР) у скрипту има прије сваког / на путањи. То је зато што ћемо ово проћи касније у сценарију седом, тако да морамо избјећи те вриједности. Сигуран сам да постоји неки други начин око овога, али ја то не знам.

Затим сам поставио аутоматизоване ссх пријаве. Да бисте то урадили, прво морате покренути ссх кеиген услужни програм:

ssh-keygen -t rsa

Затим морате копирати датотеку ~ / .ссх / ид_рса.пуб у датотеку ~ / .ссх / аутхоризед_кеис на удаљеном серверу. Ако је ~ / .ссх директоријум већ креиран на удаљеном серверу (можда би желио проверити), онда можете покренути ову наредбу да бисте копирали кључеве:

cat ~/.ssh/id_rsa.pub | ssh [email protected] ‘cat >> .ssh/authorized_keys’

Сада имамо аутоматизоване ссх пријаве, што ће омогућити коришћење сцп услужног програма без лозинке. Сада да погледамо сцп наредбу коју ћемо користити у скрипти:

scp $1 $SSHSERVER:$RDIR`pwd|sed “s/${LDIR}//”`/`echo $1|sed ‘s/.*///’`

$ 1 је параметар који ћете пренети у скрипту за име датотеке које покушавате да отпремите. $ ССХСЕРВЕР и $ РДИР су променљиве које ћемо поставити на почетку скрипте да подесите корисничко име @ хост и претходну удаљену путању.

Први блок који почиње са пвд | седом покреће тренутну путању директоријума и уклања претходни дио пута који се не поклапа са удаљеним сервером, али оставља остатак стазе. На примјер, ако сте били у / вар / ввв / вп-цонтент / када сте покренули команду, сед блок би уклонио / вар / ввв на основу наше ЛДИР варијабле, али оставите / вп-цонтент / парт оф ит .

Други блок једноставно осигурава да уклоните читаву претходну путању од имена филма пренете на скрипту, тако да једноставно добијете име датотеке.

На пример, ако сте назвали скрипту уп.сх и покренули је из вашег локалног / вар / ввв / вп-цонтент / плугинс / директоријума у ​​датотеку:

up.sh myplugin.php

Ово би проширило љуску као следеће:

scp myplugin.php [email protected]:/var/www/howtogeek/docs/wp-content/plugins/myplugin.php

Уместо да покушавам да креирам сопствену скрипту на основу чланка, обезбедио сам вам да преузмете. На тај начин неће бити никаквих проблема са посебним карактерима који не раде ... и да, искористио сам скрипту за уплоад себе =)

Преузмите геек-уплоадер.сх

Само га ставите негде на свој пут, и назовите га шта год желите. Преименовао сам своје само на "горе", тако да могу само да упишем "уп филенаме.ткт" за отпремање. Такође не заборавите да га отворите и промените променљиве на почетку скрипте да бисте се подударали са окружењем.

Ова скрипта треба да ради на било чему са * ник схелл и сцп услужним програмом. Ја користим Убунту, али би требало да ради на Соларис, ОС Кс, или чак Виндовс са Цигвин инсталираним.

Топ Типс:
Коментари: