{
    "componentChunkName": "component---src-components-post-js",
    "path": "/2013/03/03/linux-kopia-zapasowa-pendrive/",
    "result": {"data":{"mdx":{"id":"24d46205-2984-5315-8b9a-c0f5b5353eca","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Linux: Kopia zapasowa pendrive\",\n  \"date\": \"2013-03-03\",\n  \"author\": {\n    \"name\": \"Piotr Srebniak\"\n  },\n  \"description\": \"Ludzie dzielą się na tych co robią backup, i na tych, którzy co będą go robić.\",\n  \"heroImage\": \"../../wp-content/uploads/2013/03/home-bg-1200x350-c-default.jpeg\",\n  \"categories\": [{\n    \"name\": \"Linux\"\n  }],\n  \"localImages\": [],\n  \"localDocuments\": [],\n  \"localVideos\": []\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(TextContent, {\n    mdxType: \"TextContent\"\n  }, mdx(TextContent, {\n    title: \"Kopia zapasowa pendrive\",\n    mdxType: \"TextContent\"\n  }, \"Je\\u015Bli du\\u017Co pracujesz na danych trzymanych na zewn\\u0119trznych no\\u015Bnikach, takich jak pendrive to wa\\u017Cna jest cz\\u0119sta kopia zapasowa danych. Poni\\u017Cszy spos\\xF3b wykorzystuje narz\\u0119dzie \", mdx(\"i\", null, \"rsync\"), \" i przesy\\u0142a tylko zmienione pliki, a wi\\u0119c mo\\u017Ce by\\u0107 u\\u017Cywany r\\xF3wnie\\u017C do przenoszenie du\\u017Cej ilo\\u015Bci danych. Dodatkowo w razie niepod\\u0142\\u0105czenia pendrive zostaniemy poinformowani niepowodzeniu.\", mdx(\"br\", null), mdx(\"br\", null), \"Skrypt do poprawnego dzia\\u0142ania potrzebuje narz\\u0119dzi: \", mdx(\"i\", null, \"rsync\"), \", \", mdx(\"i\", null, \"notify-send\"), \" oraz \", mdx(\"i\", null, \"gedit\"), \". Ostatni mo\\u017Cna oczywi\\u015Bcie zast\\u0105pi\\u0107 dowolnym edytorem tekstu lub po prostu zakomentowa\\u0107 lini\\u0119 #23. Odpowiada ona za wy\\u015Bwietlanie wyj\\u015Bcia \", mdx(\"i\", null, \"rsync\"), \".\"), mdx(TextContent, {\n    title: \"Konfiguracja skryptu\",\n    mdxType: \"TextContent\"\n  }, \"Dzia\\u0142anie skryptu oparte jest o UUID partycji. UUID partycji o nazwie\", \" \", mdx(\"i\", null, \"Pendrive\"), \" uzyskujemy w nast\\u0119puj\\u0105cy spos\\xF3b:\", mdx(CodeFragment, {\n    mdxType: \"CodeFragment\"\n  }, \"$ mount\", mdx(\"br\", null), \"/dev/sdb1 on /media/Pendrive [\\u2026]\"), \"Nasz Pendrive to /dev/sdb1 wi\\u0119c szukamy go\", mdx(CodeFragment, {\n    mdxType: \"CodeFragment\"\n  }, \"$ ls -al /dev/disk/by-uuid/\", mdx(\"br\", null), \"[\\u2026]\", mdx(\"br\", null), \"lrwxrwxrwx 1 root root 10 mar 3 22:41 B34C-18DF -> ../../sdb1\", mdx(\"br\", null)), \"Nasz UUID to \", mdx(\"i\", null, \"B34C-18DF\"), mdx(\"br\", null), mdx(\"br\", null), \"Je\\u015Bli chcemy skopiowa\\u0107 dane z CA\\u0141EGO pendrive to zmienn\\u0105\", mdx(CodeFragment, {\n    mdxType: \"CodeFragment\"\n  }, \"_SRC_DIR=./\"), \"ustawiamy na ./ . W przeciwnym wypadku wpisujemy nazw\\u0119 folderu do skopiowania.\", mdx(\"br\", null), mdx(\"br\", null), \"Na koniec pozostaje nam okre\\u015Blenie \\u015Bcie\\u017Cki do kopii.\", mdx(\"br\", null), \"U mnie jest to\", mdx(CodeFragment, {\n    mdxType: \"CodeFragment\"\n  }, \"_DST_DIR=$HOME/kopia\")), mdx(TextContent, {\n    title: \"Skrypt\",\n    mdxType: \"TextContent\"\n  }, mdx(CodeFragment, {\n    mdxType: \"CodeFragment\"\n  }, \"#!/bin/bash\", mdx(\"br\", null), mdx(\"br\", null), \"# tutaj wpisujemy nasz UUID\", mdx(\"br\", null), \"_PEN_UUID=B34C-18DF\", mdx(\"br\", null), mdx(\"br\", null), \"# tutaj katalog do skopiowania\", mdx(\"br\", null), \"_SRC_DIR=wazne\", mdx(\"br\", null), mdx(\"br\", null), \"# a tutaj sciezke docelowa dla kopii\", mdx(\"br\", null), \"_DST_DIR=$HOME/kopia/\", mdx(\"br\", null), mdx(\"br\", null), \"# skrypt\", mdx(\"br\", null), \"_DEV_=`ls -al /dev/disk/by-uuid/ | grep $_PEN_UUID | awk '\", \"{\", \" print $11\", \"}\", \"\\u2019`\", mdx(\"br\", null), \"_MNT_=`mount | grep $\", \"{\", \"_DEV_:6} | awk '\", \"{\", \"print $3\", \"}\", \"\\u2019`\", mdx(\"br\", null), mdx(\"br\", null), \"if [ $\", \"{#\", \"_MNT_\", \"}\", \" -gt 0 ]; then\", mdx(\"br\", null), \"cd $_MNT_\", mdx(\"br\", null), \"mkdir -p $_DST_DIR\", mdx(\"br\", null), \"rsync -av ./$_SRC_DIR $_DST_DIR \", \">\", \" $_DST_DIR/log.txt\", mdx(\"br\", null), \"echo \\\"Aktualizacja wykonana w dniu: `date`\\\" >> $_DST_DIR/log.txt\", mdx(\"br\", null), \"notify-send \\\"Aktualizator\\\" \\\"Aktualizacja powiod\\u0142a si\\u0119!\\\" -i desktop-effects\", mdx(\"br\", null), \"# zakomentuj ponizsza linie jesli nie chcesz aby otwieralo sie powiadomienie\", mdx(\"br\", null), \"gedit $_DST_DIR/log.txt\", mdx(\"br\", null), \"else\", mdx(\"br\", null), \"notify-send \\\"Aktualizator\\\" \\\"Nie wykryto no\\u015Bnika!\\\" -i desktop-effects\", mdx(\"br\", null), \"fi\")), mdx(TextContent, {\n    title: \"Skr\\xF3t\",\n    mdxType: \"TextContent\"\n  }, \"Dodatkowo polecam utworzy\\u0107 aktywator do naszego skryptu.\", mdx(\"br\", null), \"I pami\\u0119tajcie: backup nie zrobi si\\u0119 sam.\", mdx(\"br\", null), mdx(\"br\", null), \"Je\\u015Bli macie zastrze\\u017Cenie co do skryptu lub czego\\u015B nie rozumiecie \\u2013 piszcie!\")));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"Linux: Kopia zapasowa pendrive","date":"2013-03-03","author":{"name":"Piotr Srebniak","link":null},"description":"Ludzie dzielą się na tych co robią backup, i na tych, którzy co będą go robić.","categories":[{"name":"Linux","subcategoryOf":null,"link":null}],"heroImage":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","backgroundColor":"transparent","images":{"fallback":{"src":"/assets/static/7503bf990f310e2f5f9e6432d66bfb76/360b3/home-bg-1200x350-c-default.jpg","srcSet":"/assets/static/7503bf990f310e2f5f9e6432d66bfb76/549b5/home-bg-1200x350-c-default.jpg 750w,\n/assets/static/7503bf990f310e2f5f9e6432d66bfb76/8be58/home-bg-1200x350-c-default.jpg 1080w,\n/assets/static/7503bf990f310e2f5f9e6432d66bfb76/360b3/home-bg-1200x350-c-default.jpg 1200w","sizes":"(min-width: 1200px) 1200px, 100vw"},"sources":[{"srcSet":"/assets/static/7503bf990f310e2f5f9e6432d66bfb76/565d7/home-bg-1200x350-c-default.webp 750w,\n/assets/static/7503bf990f310e2f5f9e6432d66bfb76/ed9e5/home-bg-1200x350-c-default.webp 1080w,\n/assets/static/7503bf990f310e2f5f9e6432d66bfb76/1e608/home-bg-1200x350-c-default.webp 1200w","type":"image/webp","sizes":"(min-width: 1200px) 1200px, 100vw"}]},"width":1200,"height":350}}},"localImages":[],"localDocuments":[],"localVideos":[]}}},"pageContext":{"id":"24d46205-2984-5315-8b9a-c0f5b5353eca"}},
    "staticQueryHashes": ["3606462474","4147971667"]}