Vi har redan sett hur man ansluter till en FTP-server och arbetar med den (eller dess innehåll) via terminalen, det vill säga utan att använda grafiska applikationer.
Den här gången ger jag dig ett plus eller ett extra ... låt mig förklara.
För några år sedan lämnade jag dem ett bash-skript som används för att säkerhetskopiera (sparar) data från en server. Skriptet kopierade en serie mappar (som / etc /), exporterade databaser osv ... och komprimerade det med ett lösenord till en .RAR- eller .7z-fil (jag använder för närvarande 7z), det enda som skriptet saknade var för att kunna ladda upp den komprimerade filen till någon FTP-server, på detta sätt kopieras sparandet från servern till en annan plats.
Dessa dagar tog jag upp skriptet igen för att optimera det lite, förbättra det och uppenbarligen kom behovet av det sista som jag nämnde för dig fram och laddade upp det komprimerade arkivet till en extern FTP.
Hur laddar jag upp till en FTP med ett enda kommando?
Vad jag behövde var genom ett enda kommando för att ansluta till en FTP med användarnamn och lösenord, och väl; ladda upp filen till en specifik mapp.
Terminalapplikationer som tillåter mig att ansluta till en FTP, sätta användare och lösenord och ladda upp filer finns det många, men ... som tillåter mig att göra detta på en rad, med alla parametrar som redan har angivits .... hej där frågan.
Efter att ha granskat 4 eller 5 ... tänkte jag, va !! ... men det finns curl
Ladda upp till en FTP med curl
Med curl kan jag göra ett oändligt antal saker, kanske kan jag göra vad jag vill ... och det är det!
Med parametern -u kan jag ange användare och lösenord, även med parametern -T kan jag be den att ladda upp en fil, och slutligen berätta den till vilken FTP och vilken mapp jag vill ladda upp den, i slutet bara sätt hela vägen, mer eller mindre så här:
curl -u usuario:password -T archivo-backup.7z ftp://192.168.128.2/SERVER_BACKUPS/
Vad detta gör är att ansluta till FTP 192.168.128.2 med användaren Usuario och lösenord Lösenord och ladda upp till mappen SERVER_BACKUPS filen som heter säkerhetskopiering av fil. 7z
Och redo!
Enkelt, eller hur? ...
Naturligtvis kan detta vara användbart för oss och kommandot ensam, men det bästa sättet att använda det är med ett skript som ... det jag nämnde tidigare
Och hur är det med det manuset som nämns?
Jag gör förbättringar av skriptet, särskilt med vissa förfrågningar eller förslag från användare.
- Det första jag ville göra var just detta som jag just förklarade för dig, med ett enda kommando för att kunna ladda upp sparfilen till en FTP.
- Det andra som en användare rekommenderade var att skicka ett mejl när säkerhetskopian var klar, för det kan jag använda skicka brev eller ett externt skript, Jag använder helst sendmail. Detaljen med att använda sendmail är att du kan använda ditt GMail-konto (eller något annat) för att skicka e-postmeddelandet, med kryptering ... SSL och vad som helst.
- Dessutom rekommenderade en användare att ett meddelande skickas av IM med hjälp av GTalks XMPP eller Hotmail (Live eller något liknande, jag vet inte ens vad det heter) som en mer dynamisk form av avisering. Jag kommer att försöka göra det med GTalk först, för för Hotmail skulle jag behöva komma ihåg eller stödja mig själv någonstans för att skapa ett Hotmail-konto, för med så mycket förändringsförändring som Microsoft har ingen aning om hur det är.
- En annan variant av den senare skulle vara att använda aviseringar eller meddelanden som skickas av Facebook eller Twitter. För Twitter kan du använda Twidge medan för Facebook kan du använda fbcmd. Båda applikationerna tillåter mig att interagera med dessa sociala nätverk från terminalen.
- Jag funderar också på att kontrollera integriteten för den SQL som jag exporterar, men det kräver redan lite mer tid :)
Slutet!
Tja, inget mer att lägga till ... för tillfället tar jag upp flera av mina skript gjorda i Bash för att optimera och förbättra dem, jag hoppas att det inte tar för lång tid att komma med nyheter 😀
hälsningar
Bra projekt,
Jag kommer att följa det med stort intresse.
- Något meddelande @ om servern är nere eller leveransen inte kunde göras?
Fantastiskt roligt att läsa artiklar från terminal / konsolälskare.
1 hej2
Nöjet är mitt 🙂
Bra idé att verifiera om FTP-servern är online och om den inte är det, skicka ett e-postmeddelande ... Jag tar hänsyn till det ^ _ ^
Jag hade anpassat ditt säkerhetskopieringsskript och anpassat ett projekt som låter dig ladda upp den slutliga filen till Dropbox (https://github.com/andreafabrizi/Dropbox-Uploader) och skicka ett e-postmeddelande i slutet via sendmail.
Gaara du måste prova rätt verktyg för detta: lftp
Det stöder till och med spegling, att synkronisera repor från ftp är ovärderligt.
http://www.cyberciti.biz/faq/lftp-mirror-example/
Mycket intressant, det är skönheten i detta system, du kan få samma resultat på flera sätt; Jag visar dig metoden där jag lyckades ladda upp filer till en ftp-server, det är lite rustikt men det fungerar fortfarande:
{
eko-användarnas lösenord
ekofack
ekoprompt
echo cd / katalog / från / server / ftp
echo put-fil
eko nära
ek hejdå
} | ftp -n server.ftp
OOOHHH intressant, jag visste inte vad som kunde göras så 😀
Tack!
Andra sätt, till exempel med wput:
wput file_to_upload ftp: // ANVÄNDARE: PASS@123.123.123.123: 21
eller för dem som föredrar enkelhet i ett skript med det gamla telnet:
ftp -n server_ip << EOF
användare anonym test@test.cu
skicka FIL.txt
avsluta
EOF
Hej, jag är nybörjare i Linux och jag kan inte datavetenskap - bara på användarnivå - eller programmering, eller något liknande, jag är praktiskt taget okunnig om detta. Jag läste den här artikeln och jag läste i slutet av andra stycket ordet "plats"; det ordet missbrukas, du har menat: plats, plats, plats, plats. Ordet plats betyder något annat eftersom RAE säger "http://dle.rae.es/?id=NXeOXqS".