இதை யார் அனுபவித்ததில்லை: மலிவான பகிரப்பட்ட ஹோஸ்டிங் தொகுப்பில் (எ.கா., IONOS இலிருந்து) ஏதாவது ஒன்றை விரைவாகப் பதிவிறக்க வேண்டும். git pull நீங்கள் ஒரு நிரலை இயக்கவோ அல்லது தரவுத்தளத்தைப் பயன்படுத்தவோ விரும்பலாம், ஆனால் உங்கள் ஹோஸ்டிங் வழங்குநர் SSH அணுகலை வழங்குவதில்லை - அல்லது அதிக விலை கொண்ட திட்டங்களில் மட்டுமே. பெரும்பாலும், மீதமுள்ள ஒரே வழி FTP வழியாக கோப்புகளை கைமுறையாக பதிவேற்றும் கடினமான செயல்முறையாகும், இது வரிசைப்படுத்தல்களை தேவையில்லாமல் சிக்கலாக்குகிறது மற்றும் பிழைகளுக்கு ஆளாக்குகிறது.
ஒரு சாத்தியமான தீர்வாக கோப்பு முறைமையை இதன் மூலம் ஏற்றுவது உள்ளது sshfs. கோட்பாட்டளவில், இது நன்றாகத் தெரிகிறது: நீங்கள் தொலை கோப்புறையை உள்ளூரில் ஏற்றி, கோப்புகள் உங்கள் சொந்த கணினியில் இருப்பது போல் வேலை செய்கிறீர்கள். இதைச் செய்ய, நீங்கள் ஒரு உள்ளூர் கோப்பகத்தை உருவாக்கி, அதை FTP/SSH பயனர் வழியாக சேவையகத்துடன் இணைக்க வேண்டும். இணைப்பை நிறுவவும், இந்தக் கோப்புறைக்கு Git ஐத் தயாரிக்கவும் தேவையான கட்டளைகள் Linux இன் கீழ் இப்படி இருக்கும்::
sudo apt-get install sshfs
mkdir /var/www/repo
cd /var/www/repo
sshfs username@your.host:/ -p 22 /var/www/repo
git config --global --add safe.directory /var/www/remote
git status
...
umount /var/www/remote
பிரச்சனை: செயல்திறன் மோசமாக உள்ளது. Git போன்ற கட்டளைகளுடன் போராடுவதால் git status ஆயிரக்கணக்கான சிறிய கோப்பு செயல்பாடுகளைச் செய்யும்போது, ஒவ்வொன்றும் நெட்வொர்க் அணுகல் தேவைப்படுவதால், எளிமையான பதில்களுக்காகக் கூட ஒருவர் நிமிடங்கள் காத்திருக்க வேண்டியிருக்கும். இந்த சூழ்நிலைகளில் உற்பத்தி வேலை கிட்டத்தட்ட சாத்தியமற்றது. குறிப்பாக ஏராளமான சார்புகளைக் கொண்ட திட்டங்களில், முனையம் அடிக்கடி முழுமையாக உறைந்துவிடும், இதனால் விரக்தியடைந்த பயனர்கள் செயல்முறையை கைவிட வேண்டிய கட்டாயம் ஏற்படுகிறது.
ftpsh போன்ற நூலகங்கள் இந்த சூழ்நிலைக்கே சரியாக உள்ளன. இந்த நூலகம் (S)FTP மற்றும் HTTP அணுகலை மட்டுமே வழங்கும் தொலை சேவையகத்தில் ஷெல் கட்டளைகளை இயக்க உங்களை அனுமதிக்கிறது. தந்திரம் என்னவென்றால், ஒரு PHP ஸ்கிரிப்ட் தற்காலிகமாக பதிவேற்றப்படுகிறது, இது கொடுக்கப்பட்ட கட்டளைகளை செயல்படுத்தி வெளியீட்டை வழங்குகிறது. இவை அனைத்தும் பின்னணியில் நடக்கும், ஆனால் ஒரு உண்மையான ஷெல் போல உணர்கிறது.
நிறுவல் விரைவானது மற்றும் எளிதானது.:
mkdir ftpsh
cd ftpsh
wget -O ftpsh.sh https://raw.githubusercontent.com/vielhuber/ftpsh/main/ftpsh.sh
chmod +x ftpsh.sh
அடுத்து, (S)FTP அணுகல் தரவுடன் ஒரு .env கோப்பை உருவாக்குகிறோம்.:
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
இந்த ஸ்கிரிப்ட் பின்னணியில் ஒரு பணியாளரைப் பதிவேற்றுகிறது, கட்டளையை சேவையகத்தில் உள்ளூரில் செயல்படுத்துகிறது (அது வேகமாக இருக்கும் இடத்தில்), மேலும் முடிவை வழங்குகிறது. இது வரையறுக்கப்பட்ட ஹோஸ்டிங் சூழல்களில் கூட, வரிசைப்படுத்தல்கள், தரவுத்தள டம்ப்கள் அல்லது Git செயல்பாடுகளை திறமையான தானியக்கமாக்க அனுமதிக்கிறது. இது தரவுத்தள ஒத்திசைவுக்காக syncdb உடன் தடையின்றி ஒருங்கிணைக்கிறது.