Příkaz scp je navíc pevně zakořeněný v hlavách uživatelů, podobně jako dávno zastaralý příkaz ifconfig.
Možná by stálo za zamyšlení, proč tomu tak je. ifconfig je 21let zastaralý, což už je jedna celá generace. Za tu dobu jsme přešli na smartphone, dotykové ovládání a už 2x přeladili TV na novou normu. Jak je tedy možné, že 21 let zastaralý příkaz je stále "zakořenený" v hlavách adminů, od kterých by se navíc dala / měla očekávat nějaká trochu vyšší mentální aktivita?
Jinak nové scp není nic proti ničemu, pokud bude bezpečné a použitelné. Je otázkou, proč rsync velmi často chybí v minimální distribuci, ale i to se dá řešit pomocí kombinace tar a ssh.
Možná by stálo za zamyšlení, proč tomu tak je. ifconfig je 21let zastaralý, což už je jedna celá generace.
Někteří ifconfig dál používají na BSD systémech, to může být malá část důvodu.
Největší část problému je držení kompatibility. Zprvu se to nechá, aby se nerozsypaly scripty. Pak se postupně vytratí z distribucí, ale lze doinstalovat (což se stane při prvním balíku, který takovou závislost stále má).
Díky tomu se to na věky věkův udrží v návodech na internetu a v hlavách lidí. 90 % příspěvků na internetu jsou vykopírované starší návody a diskuse těch, kteří to umějí málo s těmi, kteří to umějí ještě míň.
Pochybuju, že to lze dělat o moc líp bez násilného odstranění příkazu úplně.
Kde se vzal ten názor, že ifconfig je zastaralý? Že se jeden systém rozhodl zahodit vývoj a místo toho znovuobjevit kolo, ale zároveň nechat i to staré tolik let na místě není problém ifconfig.
ifconfig = interface config
Proč je na Unix-like systémech a xBSD používán a hlavně stále aktivně vyvíjen s mnohem více funkcemi, které se týkají síťových rozhraní aby se člověk nemusel učit milion jiných příkazů je dostatečně jasné i z man stránek
https://man.openbsd.org/ifconfig
https://man.netbsd.org/ifconfig.8
https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_commands/ifconfig.html
https://docs.oracle.com/cd/E36784_01/html/E36871/ifconfig-1m.html
Mentální aktivita adminů, kteří raději používají jeden příkaz, který pokryje vše, nenutí zbytečné učení nových věcí, které nepřínášejí žádnou výhodu, když funkcionalitu je možné mít v existujícím příkazu, který je navíc udržován a vyvíjen a umožňuje interoperabilitu nebo minimálně usnadňuje přechod mezi systémy, tak tato mentální aktivita je zcela jistě v pořádku.
Naopak bych se pozastavoval nad tím jak vypadá man stránka pro ip nebo to, že stačilo udělat 'ifconfig eth0' a člověk viděl i statistiky rozhraní rovnou, což pro admina co řeší problém bylo hned na místě. Teď musí udělat například 'ip -s link' přičemž přepínač -s není ani popsán v man stránce a nelze zobrazit jen jedno konkrétní rozhraní, ale ukáže všechny. Tomu se říká pokrok?
Kde se vzal ten názor, že ifconfig je zastaralý?
To není názor. V kernelu 2.2 došlo k tak výrazným změnám v síťování, že bylo jednodušší napsat nový nástroj a ten starý prostě nechat dožít.
kteří raději používají jeden příkaz
Jsem v praxi 15 let a s naprostou pravidelností vídávám, jak někdo použije "stejný" příkaz akorát na jiném OS a potom se diví. Někdy stačí jen jiná distribuce.
Navíc to zmíněné síťování na BSD systémech je také dost jiné, nebo i tam používáte například iptables? Asi ne, místo toho tam máte (na FreeBSD) tři různé FW.
Teď musí udělat například 'ip -s link' přičemž přepínač -s není ani popsán v man stránce a nelze zobrazit jen jedno konkrétní rozhraní, ale ukáže všechny. Tomu se říká pokrok?
Asi máte divný man. -s tam je. Stejně jako popis výběru konkrétní iface. A celý ten příkaz je strukturovaný, takže pokud se naučíte například styl práce s ip a, tak už to bude velmi podobné pro ip r, ip l atd.
V kernelu 2.2 došlo k tak výrazným změnám v síťování, že bylo jednodušší napsat nový nástroj a ten starý prostě nechat dožít.
Což byl obrovský neodhad situace. Kdyby bývali věděli, že ifconfig přežije další dvě dekády, spíš by řešili, aby ifconfig zůstal kompatibilní s rozhraním jádra.
Navíc to zmíněné síťování na BSD systémech je také dost jiné, nebo i tam používáte například iptables?
Jojo, ifconfig na FreeBSD je odlišný od linuxového. Taky ho museli hodně překopávat, doplňovat, co si doba žádala. Podle mě je to lepší praktika, než zachovat kompatibilní-ale-vlastně-nekompatibilní ifconfig a preferovat jiný nástroj. To se prostě nepovedlo, ifconfig nevymřel.
Jenže pointa je o tom, že ifconfig vznil v 4.2BSD jako i samotná TCP/IP implementace. V xBSD a Unix-like systémech je to plnohodnotný a aktivně vyvíjený a udržovaný program.
Je to věc Linuxu stavět si hlavu a trochu to připomíná Windows v dřívějších letech, ale to se nám všem jen zdá, protože Linux přece chtěl být lepší než Windows ;-)
Když už se rozhodli jak se rozhodli, tak budiž, ale ať to prezentují jak mají aneb že se rozhodli být nekompatibilní se zbytkem Unix-like světa a ať to prostě natvrdo zahodí a vnutí ip. Když to jde s systemd a podobně, tak nevidím problém u takové v podstatě prkotiny.
Tím by jsme měli vyřešenu "zastaralost", která neexistuje, protože ifconfig není Linux příkaz.
K "stejným" příkazům.... na Unix-like mám vždy ifconfig, že může být jiný počet přepínačů je už jen drobnost jako na Linuxu, kde i ip samotný je rozdílný mezi distribucemi. V práci mezi hromadou OS člověk používá to co je nativní pro ten OS, pokud to nedělá, tak v té práci nemá co dělat :-)
iptables.....brrr naštěstí ne :-D FreeBSD a 3 různé fw, z toho některý třeba pozadu oproti realitě (pf) je důsledek toho, že chtějí být jako Linux. Nic co bych mohl nějak ovlivnit, maximálně výběrem OS no
Ano, přepínač tam je jak potvrzeno v jiné mé reakci, v ip samotné. Čekal bych ho v ip-link (ale ta zase není ve všech distrech), ale to už je věc pohledu.
Jestli je toto https://www.systutorials.com/docs/linux/man/8-ip-link/ vůči tomuto https://man.openbsd.org/ifconfig , už jen od pohledu strukturované, tak máme asi jiný náhled na to co je pořádek, čitelnost a struktura. Dá se to ale chápat, když v samotném RHEL vývojaři třeba KVM považují man stránky za zbytečnost a že přece když chce někdo něco vědět, tak si přečte zdrojový kód. Pak to tak vypadá bohužel, to vede i k věcem kdy se v systému drží 20 let nedoporučovaný a neudržovaný příkaz nebo jako v OpenSSL otřesný guláš kódu pro HW, který nikdo na vlastní oči už 30 let neviděl
ať to prostě natvrdo zahodí a vnutí ip
To autoři iproute2 udělali. Ale nemohli zabránit autorům ifconfig, aby svůj program dál vyvíjeli i pro Linux. A nemohli zabránit autorům distribucí, aby balíček s ifconfig dál distribuovali v základních verzích distribucí.
Problém s ifconfig v Linuxu padá jednoznačně na hlavu autorů distribucí, ti mohou za to, že distribuce používaly ve svých skriptech nástroj, který fungoval špatně.
No ta cesta ještě navíc byla ifconfig -> iproute -> iproute2 . Navíc nezahodil to ani RedHat, ani Oracle, ani Debian...... Takže ano, padá to na hlavu autorů distribucí, ale to jsou ti samí co vyvíjí Linux a tyto nástroje a následně si stěžují, že se používají neudržované nástroje. To nezní jako cesta ven z bludného kruhu.
Ano, přepínač tam je jak potvrzeno v jiné mé reakci, v ip samotné. Čekal bych ho v ip-link (ale ta zase není ve všech distrech), ale to už je věc pohledu.
To není věc pohledu. Je to globální přepínač, ne specifický pro daný podpříkaz. Proto se také píše před link a ne až za něj a proto je dokumentovaný v ip(8) a ne v ip-link(8).
No já se ptám hlavně proto, protože v :
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo) #
Je sice přepínač -c a je i v man stránce, ale -j tam není a -br tam taky není (ale funguje!) a místo toho je v options popsáno -b jako pro načítání batch file a -r pro použití systémového resolveru.
Je fajn vidět jak na tom od roku 1999 mákli.............
A i když ifconfig v Linuxu není vyvíjen od roku 2001, tak protože systémová dokumentace je pormě zmatená a obecně jsou lidi z těchto systémů zvyklí používat Google místo hlavy a man stránek, tak to má takové docela "vtipné" důsledky v praxi, kdy například lidé vyvíjející automatizaci pro ITIL nástroje a načítající data ze systému pro třeba pojmenování rozhraní, používají ifconfig, tak řeknou, že to nejde, když je člověk upozorní na to, že to jde pomocí ip a že to je něco co už by roky měli dávno používat, obzvláště když jde o podstatná data z tisíců serverů, se kterými následně pracují další tisíce lidí, tak řeknou jako "Linux" lidi, sorry možná v další verzi za rok nebo dva, musíme zjistit jak to funguje :-D
Ale reálné dopady práce generace, která místo vyžadování a používání kvalitní lokální dokumentace používá Google a jeho "vyhledávání' 15 let starých tutoriálů, to by bylo na dlouhou debatu a vtipné historky z praxe :-)
(jako třeba Linux programátoři zdravotnických robotů, kteří ani neví kde a jak se nastavuje PATH :-D)
Ale oni v podstatě mají pravdu, ten ifconfig je všude +- podobně, jen ten Linux se zase musí lišit (a opravdu, jen marně se snažím přijít na racionální důvody proč to šlo směrem ip a ne přidáním parametrá do ifconfigu/route/...).
Ano, v té době to byla novinka, věci které tehdy v advanced routeru přišly byly úžasné pro nás pár co jsme je potřebovali (jako source based routing atd), jenže to bylo malé procento uživatelů a tak bylo pohopitelné že tool k tomu je dost nepřehledně dokumentovaný,
No koukám skoro po dvou desítkách let nic moc změna, ifconfig a route vypisují co mají bez parametrů, ip -h / ip ro help / ip ad help ve srovnánání s ifconfig --help popř route --help vypadá dost spartánsky a pro nováčka jistě děsivě, man stránky ip taky vypadají jak z doby 2.2...
Edit: i když jestli mě paměť neklame, tehdy to nebyla man page ale nějakej texťák, tak přecejen zlepšení. Ale obsah stejnej
11. 11. 2020, 19:07 editováno autorem komentáře
Zatímco předtím stačilo
ifconfig enpls0
tak teď je k tomu třeba 5 dalších parametrů navíc. Jako admin hledám nejkratší cestu, obzvláště když se to dělá často.
Dá se na to ale určitě zvyknout, jen toho zbytečného psaní navic.
Více zarážející je ta nekonzistence celková. V RedHat 6 je manuálová stránka pro ip kde je zmíněný -s přepínač, ale není tam manuálová stránka pro ip-link, ta už je v RedHat 7, ale zmínka o přepínači -s v ní není a je jen v ip samotném
Pomocí ip -s a s team2 dosáhnu podobného výstupu jako s ifconfig, ale nejsou tam jednotky převáděné, abych toho dosáhl tak nemůžu použít ip -sh a s team2 (protože z nějakého důvodu se rozhodli nenaprogramovat spojování přepínačů), ale musím použít ip -s -h a s team2.
To je hodně dávné „dřív“. Příkaz ip je tu s námi od roku 1999 a naopak poslední verze ifconfig pro Linux vyšla v roce 2001. Zhruba od té doby se považuje původní příkaz za zastaralý, protože používá už neexistující rozhraní jádra (dnes je jen emulované) a umí ukazovat nesmysly.
Třeba nepočítá s více adresami na rozhraní (ukazuje je jako separátní rozhraní), nedovoluje libovolně pojmenovat síťové rozhraní, neumí masky pomocí zápisu CIDR, neumí barvičky a podobně. Navíc tyhle staré utility čtou výstupy z /proc/, místo aby používaly dnešní rozhraní netlink pomocí socketu.
Balíček net-tools už dávno není ve výchozím stavu v distribucích instalován a je potřeba si o něj explicitně říct. Tohle už fakt nechcete používat.
Jsem na světě 33 let, stačil jsem se toho naučit ohledně Linuxu spoustu a u něčeho jsem byl nucen vše zapomneout a naučit se znovu jednou, u něčeho dvakrát.
Překopává se naprosto všechno a pořád a je to únavné, člověk z těch knih nemůže zvednout hlavu, v tu chvíli už používá něco, co je obsolete. Nechci to umět "tak nějak", ale pořádně.
Tak se naučím se scp, místo toto mám používat sftp. Naučím se SysV, mám používat Systemd, naučím se s network-managerem, v tu chvíli mi tam nacpou neplan, naučím se s ifconfig, najednou je to ip. To je prostě trochu problém, člověk se potřebuje občas učit i něco jiného, než to co se už jednou bezpečně naučil.
Tak ještě že tu máme ten POSIX.
Takový RSX-11 nebo MR12.3, to byste si užil.
Ale občas se i ty "staré páky" hodí. Nedávno jsem klonoval pár počítačů a připojoval jsem je nekříženým UTP kabelem na přímo do dvojic.
S "novým ip" se mi vůbec nedařilo to rozběhnout a se stařičkým ifconfigem to šlo na první dobrou.
Docela výstižně to řekl Buzz Aldrin
https://blog.speculist.com/wp-content/uploads/2012/10/buzzonMITreview.jpg
You promised me Mars colonies. Instead, I got Facebook.
We've stopped solving big problems.
Nejde jen o to naučit se něco nového. Problém je v tom, že to nové má potenciálně horší ergonomii a/nebo neumí vše, co uměla ta původní varianta. Jestliže je původní utilita intuitivní pro jednoduché použití a ta "lepší" má (zejména pro interaktivní práci) mimoňské ovládání nebo neumí poměrně základní operace, které zvládala ta původní, není divu, že se lidem do změny nechce.
Možná změnit přístup k věci. Jestli se opravdu musíte učit něco skutečně nového při přechodu mezi scp a sftp, tak je to nějaké divné. Obé slouží jen k přenosu souborů, to lze řešit mnoha různými způsoby. Někdy se třeba hodí i obyčejný nc, pokud kupříkladu potřebuju udělat image něčeho fakt pomalého, co by nestíhalo šifrovat. Tj boot z flashky, vytvořit nc server na zálohovacím stroji a na zálohovaném udělat prosté pv /dev/sda | nc server port. Jinde stačí klasické ssh. Pro více souborů je tady efektivní rsync a pokud není, tak tar | ssh.
Prostě ten problém se nejmenuje "scp", ten problém se jmenuje "přenést data", což lze udělat mnoha způsoby a každý se hodí na jinou situaci.
Ale pokud vám ty změny skutečně vadí, tak za sebe doporučuju FreeBSD. Base systém funguje, je stabilní, příliš se nemění, nepoužívají ani GNU verze, ale pěkně staré unixové, má to skvělou dokumentaci, je to pohoda.
neplan
No to je největší kravina za posledních x let. Je to zcela zbytečná vrstva navíc. Úkol zní nastavit síť. Od toho slouží rozhraní jádra a třeba zmíněný příkaz ip. Dřív se to tak i v některých distrech nastavovalo, člověk psal přímo příkazy pro ip. Nad tímto se postavila další vrstva (NM, systemd-networkd), která ještě dává smysl, sjednocuje konfiguraci do souborů, umí reagovat na události apod. Potud je to v pořádku.
Ale potom někdo vymyslí další vrstvu, která jen mění způsob konfigurace a jako "renderer" si volí právě NM nebo networkd. Ale vůbec nic to neulehčuje, protože v případě problémů člověk stejně tak jako tak musí znát jak ten netplan, tak tu nativní službu pod tím a stejně tak i ip.
Ale pokud vám ty změny skutečně vadí, tak za sebe doporučuju FreeBSD. Base systém funguje, je stabilní, příliš se nemění, nepoužívají ani GNU verze, ale pěkně staré unixové, má to skvělou dokumentaci, je to pohoda.
Mně třeba změny nevadí, ale opravdu je někdy neúčelné se jim poddávat. Pokud potřebuji nastavit obyčejný server, jsou schopnosti ifconfigu a ip prakticky totožné. Pak se učit nástroj "ip" je fakt jen kvůli tomu, "že to někdo řekl", protože skutečná potřeba v mém případě nemusí existovat. Pokud chci na Linuxu dělat větší síťování, pak už "ip" potřebuju a naučím se ho rád.
Osobně mi ip nedělá problém a považuju ho za srozumitelný a dobře ovladatelný nástroj. FreeBSD ifconfig taky, ale Linuxový ifconfig rád nemám.
Na servery mám radši FreeBSD, právě kvůli tomu, že se tam nemění tolik mechanismů, jako v Linuxu, které v mém případě vůbec nic nepřinášejí. FreeBSD také doporučuji.
Tento problém neřeší jen Linux, ale třeba i Windows. PowerShell je taky nový a opravdu dobře navržený nástroj, příkazy dávají smysl a dá se s nimi nastavit víc. Přesto se mu setrvačností obrovská část adminů vyhýbá. To je ten samý případ, jen v bledě modrém.