Ո՞վ չի փորձել սա. Դուք պետք է արագ ինչ-որ բան ներբեռնեք էժան համօգտագործվող հոսթինգի փաթեթից (օրինակ՝ IONOS-ից): git pull Դուք կարող եք ցանկանալ գործարկել ծրագիր կամ օգտագործել տվյալների բազա, բայց ձեր հոսթինգ մատակարարը չի տրամադրում SSH մուտք, կամ միայն ավելի թանկ փաթեթներում է։ Հաճախ միակ տարբերակը մնում է FTP-ի միջոցով ֆայլերը ձեռքով վերբեռնելու ձանձրալի գործընթացը, ինչը տեղակայումները դարձնում է անհարկի բարդ և հակված սխալների։
Հնարավոր լուծում է ֆայլային համակարգը տեղադրել հետևյալի միջոցով՝ sshfs. Տեսականորեն սա լավ է հնչում. դուք տեղային կերպով միացնում եք հեռակա թղթապանակը և աշխատում եք այնպես, կարծես ֆայլերը ձեր սեփական համակարգչի վրա լինեին: Դա անելու համար դուք պարզապես ստեղծում եք տեղային գրացուցակ և միացնում այն սերվերին FTP/SSH օգտատիրոջ միջոցով: Կապ հաստատելու և Git-ը այս թղթապանակի համար պատրաստելու համար անհրաժեշտ հրամանները Linux-ում հետևյալ տեսքն ունեն.:
sudo apt-get install sshfs
mkdir /var/www/remote
cd /var/www/remote
sshfs username@your.host:/ -p 22 /var/www/remote
git config --global --add safe.directory /var/www/remote
git status
...
umount /var/www/remote
Խնդիրը. Արդյունավետությունը սարսափելի է։ Քանի որ Git-ը դժվարանում է կատարել այնպիսի հրամաններ, ինչպիսիք են՝ git status Հազարավոր փոքր ֆայլերի հետ գործողություններ կատարելիս, որոնցից յուրաքանչյուրը պահանջում է ցանցային մուտք, հաճախ րոպեներ են սպասվում նույնիսկ ամենապարզ պատասխաններին: Այս պայմաններում արդյունավետ աշխատանքը գործնականում անհնար է: Հատկապես բազմաթիվ կախվածություններ ունեցող նախագծերում, տերմինալը հաճախ ամբողջությամբ կախվում է՝ ստիպելով հիասթափված օգտատերերին դադարեցնել գործընթացը:
Ftpsh-ի նման գրադարանները գոյություն ունեն հենց այս սցենարի համար: Այս գրադարանը թույլ է տալիս կատարել shell հրամաններ հեռակա սերվերի վրա, որն առաջարկում է միայն (S)FTP և HTTP մուտք: Հնարքն այն է, որ ժամանակավորապես վերբեռնվում է PHP սկրիպտ, որը կատարում է տրված հրամանները և վերադարձնում արդյունքը: Այս ամենը տեղի է ունենում ֆոնային ռեժիմում, բայց զգացվում է որպես իրական shell:
Տեղադրումը արագ և հեշտ է։:
mkdir ftpsh
cd ftpsh
wget -O ftpsh.sh https://raw.githubusercontent.com/vielhuber/ftpsh/main/ftpsh.sh
chmod +x ftpsh.sh
Հաջորդը, մենք ստեղծում ենք .env ֆայլ (S)FTP մուտքի տվյալներով։:
HOST=your-server.com
PORT=22
USERNAME=your-username
PASSWORD=your-password
REMOTE_PATH="/"
WEB_URL="https://your-server.com"
Այժմ մենք կարող ենք կատարել ցանկացած հրաման սերվերի վրա, եթե գործիքները հասանելի են հեռակա կարգով։:
ftpsh git status
ftpsh "mysqldump -h xxx --port 3306 -u xxx -p\"xxx\" --routines xxx" > dump.sql
Սկրիպտը ֆոնային ռեժիմով բեռնում է աշխատանքային ֆայլ, կատարում է հրամանը տեղայնորեն սերվերի վրա (որտեղ այն արագ է) և վերադարձնում է արդյունքը։ Սա թույլ է տալիս արդյունավետորեն ավտոմատացնել տեղակայումները, տվյալների բազայի dump-երը կամ Git գործողությունները, նույնիսկ սահմանափակ հոսթինգային միջավայրերում։ Այն նաև անխափան ինտեգրվում է syncdb-ի հետ՝ տվյալների բազայի համաժամեցման համար։