{"id":38928,"date":"2019-10-31T22:26:48","date_gmt":"2019-10-31T19:26:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/komanda-cp-pravilnoe-kopirovanie-papok-s-fajlami-v-nix\/"},"modified":"2019-10-31T22:26:48","modified_gmt":"2019-10-31T19:26:48","slug":"komanda-cp-pravilnoe-kopirovanie-papok-s-fajlami-v-nix","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/komanda-cp-pravilnoe-kopirovanie-papok-s-fajlami-v-nix","title":{"rendered":"T\u00fdm cp: spr\u00e1vn\u00e9 kop\u00edrov\u00e1n\u00ed slo\u017eek s soubory v *nix","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"T\u00fdm cp: spr\u00e1vn\u00e9 kop\u00edrov\u00e1n\u00ed slo\u017eek s soubory v *nix\" src=\"\/wp-content\/uploads\/2019\/10\/44fed4a64417950ae1f2307d2c9c92ca.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV tomto \u010dl\u00e1nku se odhal\u00ed n\u011bkter\u00e9 skryt\u00e9 aspekty spojen\u00e9 s pou\u017e\u00edv\u00e1n\u00edm <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BF%D0%BE%D0%B8%D1%81%D0%BA%D0%B0\">wildcards<\/a><\/noindex> p\u0159i kop\u00edrov\u00e1n\u00ed, nejednozna\u010dn\u00e9 chov\u00e1n\u00ed p\u0159\u00edkazu <code>cp<\/code> p\u0159i kop\u00edrov\u00e1n\u00ed a tak\u00e9 zp\u016fsoby, kter\u00e9 umo\u017e\u0148uj\u00ed spr\u00e1vn\u011b kop\u00edrovat velk\u00e9 mno\u017estv\u00ed soubor\u016f bez p\u0159esko\u010den\u00ed a selh\u00e1n\u00ed.<\/p>\n<p>P\u0159edstavme si, \u017ee pot\u0159ebujeme zkop\u00edrovat v\u0161e z adres\u00e1\u0159e \/source do adres\u00e1\u0159e \/target.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPrvn\u00ed, co n\u00e1s napadne, je:<\/p>\n<pre><code class=\"bash\">cp \/source\/* \/target<\/code><\/pre>\n<p>\nOkam\u017eit\u011b oprav\u00edme tento p\u0159\u00edkaz na:<\/p>\n<pre><code class=\"bash\">cp -a \/source\/* \/target<\/code><\/pre>\n<p>\nKl\u00ed\u010d <code>-a<\/code> co\u017e zahrne kop\u00edrov\u00e1n\u00ed v\u0161ech atribut\u016f, pr\u00e1v a p\u0159id\u00e1 rekurzi. Kdy\u017e nen\u00ed pot\u0159eba p\u0159esn\u00e1 reprodukce pr\u00e1v, sta\u010d\u00ed kl\u00ed\u010d <code>-r<\/code>.<\/p>\n<p>Po kop\u00edrov\u00e1n\u00ed zjist\u00edme, \u017ee nebyly zkop\u00edrov\u00e1ny v\u0161echny soubory \u2014 byly ignorov\u00e1ny soubory za\u010d\u00ednaj\u00edc\u00ed te\u010dkou, jako nap\u0159\u00edklad:<\/p>\n<p><code>.profil<br \/>\n.lok\u00e1ln\u00ed<br \/>\n.mc<\/code><br \/>\na podobn\u011b.<\/p>\n<p>Pro\u010d se to stalo?<\/p>\n<p>Proto\u017ee wildcards zpracov\u00e1v\u00e1 shell (<code>bash<\/code> v typick\u00e9m p\u0159\u00edpad\u011b). Ve v\u00fdchoz\u00edm nastaven\u00ed bash ignoruje v\u0161echny soubory za\u010d\u00ednaj\u00edc\u00ed te\u010dkami, proto\u017ee je pova\u017euje za skryt\u00e9. Abychom se tomuto chov\u00e1n\u00ed vyhnuli, budeme muset zm\u011bnit chov\u00e1n\u00ed <code>bash<\/code> pomoc\u00ed p\u0159\u00edkazu:<\/p>\n<pre><code class=\"bash\">shopt -s dotglob<\/code><\/pre>\n<p>\nAby toto zm\u011bn\u011bn\u00e9 chov\u00e1n\u00ed p\u0159etrvalo po restartu, m\u016f\u017eeme vytvo\u0159it soubor wildcard.sh s t\u00edmto p\u0159\u00edkazem v adres\u00e1\u0159i <code>\/etc\/profile.d<\/code> (mo\u017en\u00e1 ve va\u0161em distribuci na jin\u00e9m m\u00edst\u011b).<\/p>\n<p>A pokud v adres\u00e1\u0159i source nejsou \u017e\u00e1dn\u00e9 soubory, shell nebude schopen nic dosadit m\u00edsto hv\u011bzdi\u010dky a tak\u00e9 kop\u00edrov\u00e1n\u00ed sel\u017ee. Proti takov\u00e9 situaci existuj\u00ed mo\u017enosti <code>failglob<\/code> a <code>nullglob<\/code>. Budeme pot\u0159ebovat nastavit <code>failglob<\/code>, kter\u00e9 nezp\u016fsob\u00ed, \u017ee se p\u0159\u00edkaz provede. <code>nullglob<\/code> nevyhovuje, proto\u017ee p\u0159evede \u0159et\u011bzec s wildcards, kter\u00e9 nena\u0161ly shodu, na pr\u00e1zdn\u00fd \u0159et\u011bzec (nulov\u00e9 d\u00e9lky), co\u017e pro <code>cp<\/code> zp\u016fsob\u00ed chybu.<\/p>\n<p>Pokud v\u0161ak v adres\u00e1\u0159i existuj\u00ed tis\u00edce soubor\u016f a v\u00edce, je lep\u0161\u00ed bez wildcards \u00fapln\u011b upustit. Ve skute\u010dnosti <code>bash<\/code> rozbal\u00ed wildcards na velmi dlouh\u00fd p\u0159\u00edkazov\u00fd \u0159\u00e1dek podobn\u00fd:<\/p>\n<pre><code class=\"bash\">cp -a \/souce\/a \/source\/b \/source\/c \u2026\u2026 \/target<\/code><\/pre>\n<p>\nNa d\u00e9lku p\u0159\u00edkazov\u00e9ho \u0159\u00e1dku existuje omezen\u00ed, kter\u00e9 m\u016f\u017eeme zjistit pomoc\u00ed p\u0159\u00edkazu:<\/p>\n<pre><code class=\"bash\">getconf ARG_MAX<\/code><\/pre>\n<p>\nZ\u00edsk\u00e1me maxim\u00e1ln\u00ed d\u00e9lku p\u0159\u00edkazov\u00e9ho \u0159\u00e1dku v bajtech:<\/p>\n<pre><code class=\"bash\">2097152<\/code><\/pre>\n<p>\nNebo:<\/p>\n<pre><code class=\"bash\">xargs --show-limits<\/code><\/pre>\n<p>\nDostaneme n\u011bco jako:<\/p>\n<pre><code class=\"bash\">\u2026.\nMaxim\u00e1ln\u00ed d\u00e9lka p\u0159\u00edkazu, kterou m\u016f\u017eeme skute\u010dn\u011b pou\u017e\u00edt: 2089314\n\u2026.<\/code><\/pre>\n<p>\nTak\u017ee se zde budeme vyh\u00fdbat pou\u017eit\u00ed wildcards.<\/p>\n<p>Jednodu\u0161e napi\u0161me<\/p>\n<pre><code class=\"bash\">cp -a \/source \/target<\/code><\/pre>\n<p>\nA zde se setk\u00e1me s nejednozna\u010dn\u00fdm chov\u00e1n\u00edm <code>cp<\/code>. Pokud adres\u00e1\u0159 \/target neexistuje, obdr\u017e\u00edme to, co pot\u0159ebujeme.<\/p>\n<p>Pokud v\u0161ak adres\u00e1\u0159 target existuje, soubory budou zkop\u00edrov\u00e1ny do adres\u00e1\u0159e \/target\/source.<\/p>\n<p>Nen\u00ed v\u017edy mo\u017en\u00e9 p\u0159edem odstranit slo\u017eku \/target, proto\u017ee v n\u00ed mohou b\u00fdt soubory, kter\u00e9 pot\u0159ebujeme, a na\u0161\u00edm c\u00edlem m\u016f\u017ee b\u00fdt nap\u0159\u00edklad doplnit soubory v \/target soubory ze \/source.<\/p>\n<p>Pokud by se slo\u017eky zdroje a p\u0159\u00edjemce jmenovaly stejn\u011b, nap\u0159\u00edklad bychom kop\u00edrovali ze \/source do \/home\/source, mohli bychom pou\u017e\u00edt p\u0159\u00edkaz:<\/p>\n<pre><code class=\"bash\">cp -a \/source \/home<\/code><\/pre>\n<p>\nA po zkop\u00edrov\u00e1n\u00ed by soubory v \/home\/source byly dopln\u011bny soubory ze \/source.<\/p>\n<blockquote><p>Tak zad\u00e1n\u00ed logick\u00e9 \u00falohy: m\u016f\u017eeme doplnit soubory ve slo\u017ece p\u0159\u00edjemce, pokud se n\u00e1zvy slo\u017eek shoduj\u00ed, ale pokud se li\u0161\u00ed, pak bude slo\u017eka zdroj um\u00edst\u011bna uvnit\u0159 p\u0159\u00edjemce. Jak zkop\u00edrovat soubory ze \/source do \/target pomoc\u00ed cp bez wildcards?<\/p><\/blockquote>\n<p>\nAbychom se vyhnuli tomuto nevhodn\u00e9mu omezen\u00ed, pou\u017eijeme neobvykl\u00e9 \u0159e\u0161en\u00ed:<\/p>\n<pre><code class=\"bash\">cp -a \/source\/. \/target<\/code><\/pre>\n<p>\nTi, kdo dob\u0159e znaj\u00ed DOS a Linux, u\u017e to pochopili: uvnit\u0159 ka\u017ed\u00e9 slo\u017eky jsou 2 neviditeln\u00e9 slo\u017eky &#171;.&#187; a &#171;..&#187;, kter\u00e9 jsou pseudo-slo\u017ekami odkazy na aktu\u00e1ln\u00ed a nad\u0159azen\u00e9 adres\u00e1\u0159e.<\/p>\n<ul>\n<li>P\u0159i kop\u00edrov\u00e1n\u00ed <code>cp<\/code> ov\u011b\u0159uje existenci a pokou\u0161\u00ed se vytvo\u0159it \/target\/.<\/li>\n<li>Takov\u00e1 slo\u017eka existuje a to je \/target<\/li>\n<li>Soubory ze \/source byly spr\u00e1vn\u011b zkop\u00edrov\u00e1ny do \/target.<\/li>\n<\/ul>\n<p>\nTak\u017ee to si zafixujme do pam\u011bti nebo na st\u011bnu:<\/p>\n<blockquote>\n<pre><code class=\"bash\">cp -a \/source\/. \/target<\/code><\/pre>\n<\/blockquote>\n<p>\nChov\u00e1n\u00ed tohoto p\u0159\u00edkazu je jednozna\u010dn\u00e9. V\u0161e prob\u011bhne bez chyb bez ohledu na to, zda m\u00e1te milion soubor\u016f nebo \u017e\u00e1dn\u00e9.<\/p>\n<h3>Z\u00e1v\u011bry<\/h3>\n<p>\nPokud pot\u0159ebujete zkop\u00edrovat <b>v\u0161echny<\/b> soubory z jedn\u00e9 slo\u017eky do druh\u00e9, nepou\u017e\u00edvejte wildcards, rad\u011bji pou\u017eijte <code>cp<\/code> ve spojen\u00ed s te\u010dkou na konci slo\u017eky zdroje. To zkop\u00edruje v\u0161echny soubory, v\u010detn\u011b skryt\u00fdch, a nezkolabuje p\u0159i milionech soubor\u016f nebo jejich \u00fapln\u00e9 absenci.<\/p>\n<h4>Pozn\u00e1mka na z\u00e1v\u011br<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/vmspike\/\" class=\"user_link\">vmspike<\/a><\/noindex> navrhl podobnou variantu p\u0159\u00edkazu s podobn\u00fdm v\u00fdsledkem:<\/p>\n<pre><code class=\"bash\">cp -a -T \/source \/target<\/code><\/pre>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/oz_alex\/\" class=\"user_link\">Oz_Alex<\/a><\/noindex><\/p>\n<pre><code class=\"bash\">cp -aT \/source \/target<\/code><\/pre>\n<p>\nPOZOR: velk\u00e9 p\u00edsmeno <code>T<\/code> hraje roli. Pokud to zam\u011bn\u00edte, dostanete naprost\u00fd chaos: sm\u011brem kop\u00edrov\u00e1n\u00ed se zm\u011bn\u00ed.<br \/>\nPod\u011bkov\u00e1n\u00ed:<\/p>\n<ul>\n<li>Spole\u010dnosti <noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/\">RUVDS.COM<\/a><\/noindex> za podporu a mo\u017enost publikovat ve sv\u00e9m blogu na Habru.<\/li>\n<li>Za obr\u00e1zek <noindex><a rel=\"nofollow\" href=\"https:\/\/vk.com\/neoprosveschenie\">TripletConcept<\/a><\/noindex>. Obr\u00e1zek je velmi velk\u00fd a detailn\u00ed, lze ho otev\u0159\u00edt v samostatn\u00e9m okn\u011b.<\/li>\n<\/ul>\n<p>\n<b>P.S.<\/b> Zpozorovan\u00e9 chyby hlaste do soukrom\u00e9 zpr\u00e1vy. Zvy\u0161uju za to karmu.<\/p>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/ruvds.com\/ru-rub\/#order\"><img decoding=\"async\" alt=\"T\u00fdm cp: spr\u00e1vn\u00e9 kop\u00edrov\u00e1n\u00ed slo\u017eek s soubory v *nix\" src=\"\/wp-content\/uploads\/2019\/10\/67131836f7fb6cf7827541e9dc607513.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/471092\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044b \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0435 \u0432\u0435\u0449\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c wildcards \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u043d\u0435\u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b cp \u043f\u0440\u0438 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u0435\u0437 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043e\u0432 \u0438 \u0432\u044b\u043b\u0435\u0442\u043e\u0432. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u0438\u0437 \u043f\u0430\u043f\u043a\u0438 \/source \u0432 \u043f\u0430\u043f\u043a\u0443 \/target. \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0443\u043c \u044d\u0442\u043e: cp \/source\/* \/target \u0421\u0440\u0430\u0437\u0443 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29205,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38928","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/komanda-cp-pravilnoe-kopirovanie-papok-s-fajlami-v-nix\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u043e\u043c\u0430\u043d\u0434\u0430 cp: \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043e\u043a \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0432 *nix | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/komanda-cp-pravilnoe-kopirovanie-papok-s-fajlami-v-nix\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:26:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47P\u0159\u00edkaz cp: spr\u00e1vn\u00e9 kop\u00edrov\u00e1n\u00ed slo\u017eek se soubory v *nix | ProHoster","description":"V tomto \u010dl\u00e1nku budou odhaleny.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/komanda-cp-pravilnoe-kopirovanie-papok-s-fajlami-v-nix","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u043e\u043c\u0430\u043d\u0434\u0430 cp: \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043e\u043a \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0432 *nix | ProHoster","og:description":"\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u044b.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/komanda-cp-pravilnoe-kopirovanie-papok-s-fajlami-v-nix","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:26:48+00:00","article:modified_time":"2019-10-31T19:26:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38928","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 23:59:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:00:26","updated":"2026-08-11 12:50:30","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=38928"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/38928\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/29205"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=38928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=38928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=38928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}