<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Arhiva Dev članci - Hetrih.com</title>
	<atom:link href="https://hetrih.com/category/dev-clanci/feed/" rel="self" type="application/rss+xml" />
	<link>https://hetrih.com/category/dev-clanci/</link>
	<description>Razvij, testiraj, lansiraj</description>
	<lastBuildDate>Mon, 02 Dec 2024 06:39:27 +0000</lastBuildDate>
	<language>hr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.1</generator>

<image>
	<url>https://hetrih.com/wp-content/uploads/2023/01/cropped-Logo-za-ikonicu-weba-512x512-1-32x32.png</url>
	<title>Arhiva Dev članci - Hetrih.com</title>
	<link>https://hetrih.com/category/dev-clanci/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Kako (i zašto) sam automatizirao praćenje brzine interneta – Python i Docker</title>
		<link>https://hetrih.com/automatizacija-pracenja-brzine-interneta-python-i-docker/</link>
		
		<dc:creator><![CDATA[josip]]></dc:creator>
		<pubDate>Sun, 01 Dec 2024 06:16:50 +0000</pubDate>
				<category><![CDATA[Dev članci]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[speedtest]]></category>
		<guid isPermaLink="false">https://hetrih.com/?p=14943</guid>

					<description><![CDATA[<p>Ako živite u području s lošom infrastrukturom, sigurno ćete razumjeti moju frustraciju. U večernjim satima, kada je veći broj korisnika i uređaja na mreži, moja brzina downloada često pada na 1 Mbps, unatoč tome što plaćam za daleko bolji paket. ISP provider jednostavno ne nudi odgovarajuće rješenje, a ja ostajem zaglavljen s nepouzdanom vezom.  [...]</p>
<p>Objava <a href="https://hetrih.com/automatizacija-pracenja-brzine-interneta-python-i-docker/">Kako (i zašto) sam automatizirao praćenje brzine interneta – Python i Docker</a> pojavila se prvi puta na <a href="https://hetrih.com">Hetrih.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1248px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-1"><p>Ako živite u području s lošom infrastrukturom, sigurno ćete razumjeti moju frustraciju. U večernjim satima, kada je veći broj korisnika i uređaja na mreži, moja brzina downloada često pada na <strong>1 Mbps</strong>, unatoč tome što plaćam za daleko bolji paket. ISP provider jednostavno ne nudi odgovarajuće rješenje, a ja ostajem zaglavljen s nepouzdanom vezom. Za vrijeme učitavanja ovakvog članka stignem skuhati (i popiti) kavu&#8230;</p>
<p>Nakon višemjesečnih problema, odlučio sam istražiti druge opcije. Kao privremeno rješenje, isprobat ću mobilni 4G internet kod drugog providera, bez ugovorne obveze. Za testiranje sam si dao nekih desetak dana. Međutim, ručno provođenje testova brzine svakih sat vremena ili nekoliko puta dnevno brzo bi postalo zamorno. Zato sam odlučio <strong>automatizirati proces testiranja brzine interneta</strong>, a na kraju razdoblja napravit ću analizu podataka kako bih donio konačnu odluku.</p>
<p>U ovom članku podijelit ću kako sam izradio skriptu za redovno testiranje brzine, spremanje rezultata i pakiranje svega u Docker kontejner.</p>
<p><!-- notionvc: bb8d2b56-3596-4ad2-b5ed-ff5eadf5906f --></p>
</div><div class="fusion-text fusion-text-2"><p><span style="color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);"><b>Što ćemo raditi? Rješenje koje:</b></span></p>
<p>1. Redovno (npr. svakih sat vremena) mjeri brzinu interneta.</p>
<p>2. Sprema podatke (download, upload, ping, ISP i IP adresu) u log datoteku.</p>
<p>3. Može se pokrenuti na bilo kojem sustavu uz Docker.</p>
<p>4. Omogućava kasniju analizu oscilacija brzine tijekom testnog razdoblja.</p>
</div><div class="fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-one"><h1 class="fusion-title-heading title-heading-left" style="margin:0;">Korak 1: Python skripta za testiranje brzine</h1></div><div class="fusion-text fusion-text-3"><p>Prvo, trebamo Python skriptu koja koristi modul <span class="notion-enable-hover" spellcheck="false" data-token-index="1">speedtest</span> za provođenje testova brzine i zapisivanje rezultata u log (.txt) file. Evo kako izgleda:<!-- notionvc: a187e332-3f3a-472e-8f13-06f63f649e47 --></p>
</div><script src="https://gist.github.com/josiphetrih/8001127c2a68655f6bb68e83389a02a0.js"></script><div class="fusion-text fusion-text-4"><h3>Objašnjenje:</h3>
<ul>
<li>Skripta koristi biblioteku <code>speedtest-cli</code> za mjerenje download, upload brzine i pinga.</li>
<li>Log datoteka (<code>speed_test_log.txt</code>) se čuva unutar <code>/app/logs</code> direktorija.</li>
<li>Interval između testova preuzima se iz environment varijable <code>INTERVAL</code>, što omogućava promjenu prilikom pokretanja kontejnera s <i><b>docker-compose</b></i>.</li>
</ul>
<p><!-- notionvc: 203594f7-0551-4dc8-83ae-bef51dc0a6a8 --></p>
</div><div class="fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-one"><h1 class="fusion-title-heading title-heading-left" style="margin:0;">Korak 2: Kreiranje Dockerfile-a</h1></div><div class="fusion-text fusion-text-5"><p>Evo Dockerfile-a za našu aplikaciju:</p>
</div><script src="https://gist.github.com/josiphetrih/881eeb41d974e2b3d821fe6f602df756.js"></script><div class="fusion-title title fusion-title-3 fusion-sep-none fusion-title-text fusion-title-size-one"><h1 class="fusion-title-heading title-heading-left" style="margin:0;">Korak 3: Konfiguracija Docker Compose-a</h1></div><div class="fusion-text fusion-text-6"><p>omoću Docker Compose-a možemo jednostavno pokrenuti našu aplikaciju i postaviti &#8220;volume&#8221; za spremanje logova:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-1 > .CodeMirror, .fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-1 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-1 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_1" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_1" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_1" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch" data-mode="text/yaml">services:
  speedtest:
    build:
      context: .
    container_name: speedtest_logger
    volumes:
      - ./logs:/app/logs  # Sprema logove u lokalni ./logs direktorij
    environment:
      - INTERVAL=1800  # Postavite interval testiranja (30 minuta)
    restart: unless-stopped</textarea></div><div class="fusion-text fusion-text-7"><p><strong>Važno:</strong> volume dodajemo kako bi sačuvali log file lokalno. U suprotnom ćemo nakon zaustavljanja kontejnera izgubiti sve podatke.</p>
</div><div class="fusion-title title fusion-title-4 fusion-sep-none fusion-title-text fusion-title-size-one"><h1 class="fusion-title-heading title-heading-left" style="margin:0;">Korak 4: Pokretanje aplikacije</h1></div><div class="fusion-text fusion-text-8"><p><span class="notion-enable-hover" data-token-index="0">Kreirajte direktorij za projekt</span>:<!-- notionvc: cd500530-f31a-4e00-82fa-9be756580ff0 --></p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-2 > .CodeMirror, .fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-2 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-2 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_2" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_2" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_2" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch" data-mode="text/x-sh">mkdir speedtest_project
cd speedtest_project</textarea></div><div class="fusion-text fusion-text-9"><p><strong> </strong></p>
<p><strong>Postavite datoteke</strong>:</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li>Kopirajte <code>speed_test.py</code>, <code>Dockerfile</code> i <code>docker-compose.yml</code> u projektni direktorij.</li>
</ul>
</li>
</ul>
<p><!-- notionvc: 7de8be6d-370b-49ef-b808-1bff46c9b235 --></p>
</div><div class="fusion-text fusion-text-10"><p><b><span class="notion-enable-hover" data-token-index="0">Pokrenite aplikaciju</span>:</b><!-- notionvc: f30b1539-06cc-488d-a759-e01c3c9284f5 --></p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-3 > .CodeMirror, .fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-3 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-3 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_3" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_3" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_3" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch">docker-compose up -d</textarea></div><div class="fusion-text fusion-text-11"><p><b><span class="notion-enable-hover" data-token-index="0"> </span></b></p>
<p><b><span class="notion-enable-hover" data-token-index="0">Provjerite status</span>:</b><!-- notionvc: 7ea54f70-7d1b-476c-8140-aec400735ef1 --></p>
</div><div class="fusion-text fusion-text-12"></div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-4 > .CodeMirror, .fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-4 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-4 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_4" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_4" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_4" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch">docker ps</textarea></div><div class="fusion-text fusion-text-13"><p><b><span class="notion-enable-hover" data-token-index="0">Provjerite logove</span>:</b><!-- notionvc: 967a9855-25d5-4ad9-a7cf-4db25c7ed16a --></p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-5 > .CodeMirror, .fusion-syntax-highlighter-5 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-5 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-5 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-5 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_5" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_5" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_5" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch" data-mode="text/x-sh">docker logs speedtest_logger</textarea></div><div class="fusion-text fusion-text-14"><p><strong><span class="notion-enable-hover" data-token-index="0">Pregledajte spremljene rezultate</span>: </strong></p>
<p>Svi rezultati se nalaze u lokalnom <span class="notion-enable-hover" spellcheck="false" data-token-index="2">logs</span> direktoriju. Otvorite <span class="notion-enable-hover" spellcheck="false" data-token-index="4">speed_test_log.txt</span> za detalje.<!-- notionvc: 5b425551-3725-46e6-b961-f473dc1eb01e --></p>
<p>Rezultati će izgledati ovako:</p>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-6 > .CodeMirror, .fusion-syntax-highlighter-6 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-6 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-6 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-6 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_6" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_6" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_6" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch">2024-11-30 20:26:29 - ISP: Najgori ISP, IP: xx.xxx.xxx.xxx, Download: 1.67 Mbps, Upload: 1.30 Mbps, Ping: 102.678 ms
2024-12-01 06:20:21 - ISP: Najgori ISP, IP: xx.xxx.xxx.xxx, Download: 10.70 Mbps, Upload: 3.32 Mbps, Ping: 51.024 ms</textarea></div><div class="fusion-text fusion-text-15"><p>Nakon što prikupim podatke za 10 dana, analizirat ću logove pomoću Python skripte i donijeti odluku o prelasku na novog providera.</p>
<p>Nadam se da vam ova skripta neće trebati za rješavanje problema koji ja imam, no ako ih imate ili se samo želite igrati, vjerujem da će pomoći! 😊</p>
</div><div class="fusion-text fusion-text-16"></div></div></div></div></div>
<p>Objava <a href="https://hetrih.com/automatizacija-pracenja-brzine-interneta-python-i-docker/">Kako (i zašto) sam automatizirao praćenje brzine interneta – Python i Docker</a> pojavila se prvi puta na <a href="https://hetrih.com">Hetrih.com</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kako napraviti automatski backup postgres baze podataka na windowsu</title>
		<link>https://hetrih.com/automatski-backup-postgres-baze-na-windowsu/</link>
		
		<dc:creator><![CDATA[josip]]></dc:creator>
		<pubDate>Wed, 05 Jun 2024 18:49:13 +0000</pubDate>
				<category><![CDATA[Dev članci]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[baze]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[Ručno pokretanje backup-a]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[Task Scheduler]]></category>
		<category><![CDATA[Windows batch skripte]]></category>
		<guid isPermaLink="false">https://hetrih.com/?p=14647</guid>

					<description><![CDATA[<p>Saznajte kako automatizirati backup PostgreSQL baze podataka na Windowsu koristeći batch skripte i Task Scheduler. Ovaj vodič nudi korak-po-korak upute za kreiranje i konfiguriranje backup procesa, uključujući primjere za ručno pokretanje skripti.</p>
<p>Objava <a href="https://hetrih.com/automatski-backup-postgres-baze-na-windowsu/">Kako napraviti automatski backup postgres baze podataka na windowsu</a> pojavila se prvi puta na <a href="https://hetrih.com">Hetrih.com</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling" style="--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;" ><div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap" style="max-width:1248px;margin-left: calc(-4% / 2 );margin-right: calc(-4% / 2 );"><div class="fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;"><div class="fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column"><div class="fusion-text fusion-text-17"><p>U ovom članku donosim vam upute kako kreirati automatski backup baze podataka na windows sustavu. U ovom članku radimo backup postgres baze, ali na jako sličan način možete postići isti rezultat i s drugim bazama. Osobno jako često koristim ovu funkcionalnost, na primjer za backup produkcijske baze i kasniji restore, na primjer na testno okruženje i slične stvari. Na svom računalu kreirao sam batch skriptu i dodao ju u Task Scheduler koji ju vrti svako jutro.</p>
<p>Ako nemate potrebu za redovitim backupom, ovu kriptu možete jednostavno pokrenuti kao i bilo koju drugu aplikaciju na vašem računalu. Više o tome u nastavku.</p>
<h3><strong>Kreiranje batch skripte za backup</strong></h3>
<p>Napravite batch (.bat) datoteku koja će izvršavati <strong><code>pg_dump</code></strong> naredbu za backup baze podataka.</p>
<p>Prije kreiranja skripte provjerite je li pg_dump dostupan i instaliran u vašem PowerShellu. Upalite PowerShell, upišite <code>pg_dump --version</code> i pritisnite Enter.</p>
<p>Instalaciju Postgresa možete pronaći ovdje: <a href="https://www.postgresql.org/download/windows/" target="_blank" rel="noopener">Windows installers</a></p>
<p>Nakon što ste se uvjerili da <code>pg_dump</code> radi:</p>
<ol>
<li>Otvorite Notepad.</li>
<li>Upišite sljedeću skriptu (zamijenite odgovarajućim vrijednostima):</li>
</ol>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-7 > .CodeMirror, .fusion-syntax-highlighter-7 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-7 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-7 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-7 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:10px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_7" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_7" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_7" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch" data-mode="text/x-sh">@echo off
set PGPASSWORD=vaša_lozinka
pg_dump -h vaš_host -p 5432 -U vaš_korisnički_račun -d vaša_baza_podataka -F c -b -v -f "C:\Put\Do\Backup\vaša_baza_podataka_%date:~10,4%-%date:~4,2%-%date:~7,2%.dump"</textarea></div><div class="fusion-text fusion-text-18"><h4>Detaljno Objašnjenje</h4>
<ul>
<li><strong><code>@echo off</code></strong>: Onemogućuje prikazivanje naredbi u prozoru naredbenog retka.</li>
<li><strong><code>set PGPASSWORD=vaša_lozinka</code></strong>: Postavlja lozinku za pristup PostgreSQL bazi podataka.</li>
<li><strong><code>pg_dump</code></strong>: Alat za izradu sigurnosnih kopija PostgreSQL baza podataka.
<ul>
<li><code>-h vaš_host</code>: Definira hostname servera baze podataka.</li>
<li><code>-p 5432</code>: Definira port na kojem PostgreSQL sluša (default port je 5432).</li>
<li><code>-U vaš_korisnički_račun</code>: Korisnički račun za pristup bazi podataka.</li>
<li><code>-d vaša_baza_podataka</code>: Ime baze podataka koju želite backupirati.</li>
<li><code>-F c</code>: Postavlja format dump-a na &#8220;custom&#8221;.</li>
<li><code>-b</code>: Uključuje velike objekte u backup.</li>
<li><code>-v</code>: Omogućuje verbose mod za više informacija tijekom izvođenja.</li>
<li><code>-f "C:\Put\Do\Backup\vaša_baza_podataka_%date:~10,4%-%date:~4,2%-%date:~7,2%.dump"</code>: Definira put i ime datoteke za backup, uključujući formatirani datum.</li>
</ul>
</li>
</ul>
<h4>Objašnjenje Formatiranja Datuma u Batch Skripti</h4>
<p>U batch skriptama na Windowsu, <code>%date%</code> varijabla vraća trenutni datum u formatu definiranom postavkama operativnog sustava. Da biste izdvojili određene dijelove datuma, koristimo sintaksu podstringa: <code>%date:~start_position,length%</code>.</p>
<h4>Razbijanje <code>%date%</code> Varijable</h4>
<p>Pretpostavimo da je trenutni datum 05/06/2024 (format MM/DD/YYYY):</p>
<ul>
<li><code>%date:~10,4%</code> uzima 4 znaka počevši od 10. pozicije, što bi rezultiralo <code>2024</code>.</li>
<li><code>%date:~4,2%</code> uzima 2 znaka počevši od 4. pozicije, što bi rezultiralo <code>06</code>.</li>
<li><code>%date:~7,2%</code> uzima 2 znaka počevši od 7. pozicije, što bi rezultiralo <code>05</code>.</li>
</ul>
<h4>Konačni Rezultat</h4>
<p>Kad se svi dijelovi spoje, rezultat će biti npr. <code>2024-06-05</code>.</p>
<h4></h4>
<h4>Primjer:</h4>
</div><style type="text/css" scopped="scopped">.fusion-syntax-highlighter-8 > .CodeMirror, .fusion-syntax-highlighter-8 > .CodeMirror .CodeMirror-gutters {background-color:var(--awb-color7);}.fusion-syntax-highlighter-8 > .CodeMirror .CodeMirror-gutters { background-color: var(--awb-color7); }.fusion-syntax-highlighter-8 > .CodeMirror .CodeMirror-linenumber { color: var(--awb-color1); }</style><div class="fusion-syntax-highlighter-container fusion-syntax-highlighter-8 fusion-syntax-highlighter-theme-dark" style="opacity:0;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;font-size:14px;border-width:1px;border-style:solid;border-color:var(--awb-color6);"><div class="syntax-highlighter-copy-code"><span class="syntax-highlighter-copy-code-title" data-id="fusion_syntax_highlighter_8" style="font-size:14px;">Kopiraj</span></div><label for="fusion_syntax_highlighter_8" class="screen-reader-text">Syntax Highlighter</label><textarea class="fusion-syntax-highlighter-textarea" id="fusion_syntax_highlighter_8" data-readOnly="nocursor" data-lineNumbers="1" data-lineWrapping="" data-theme="hopscotch" data-mode="text/x-sh">@echo off
set PGPASSWORD=mypassword
pg_dump -h mydbserver.example.com -p 5432 -U myuser -d mydatabase -F c -b -v -f "C:\Backups\mydatabase_%date:~10,4%-%date:~4,2%-%date:~7,2%.dump"</textarea></div><div class="fusion-text fusion-text-19" style="--awb-content-alignment:justify;"><p><strong>Spremite datoteku s ekstenzijom .bat:</strong></p>
<ul>
<li>Kliknite na &#8220;File&#8221; u gornjem lijevom kutu Notepad-a i odaberite &#8220;Save As&#8221;.</li>
<li>Nazovite datoteku, na primjer, <code>backup_database.bat</code> i spremite je na željenu lokaciju.</li>
</ul>
<h3>Automatizacija Pomoću Windows Task Scheduler-a</h3>
<p>Kako biste automatizirali backup proces pomoću Windows Task Scheduler-a, slijedite ove korake:</p>
<ol>
<li><strong>Otvorite “Task Scheduler” iz Start menija:</strong>
<ul>
<li>Kliknite na Start i upišite &#8220;Task Scheduler&#8221;, zatim otvorite aplikaciju.</li>
</ul>
</li>
<li><strong>Kreiranje zadatka:</strong>
<ul>
<li>Kliknite na “Create Basic Task” s desne strane.</li>
<li>Unesite ime i opis zadatka (npr. “Database Backup”).</li>
<li>Odaberite kada želite da se zadatak pokreće (npr. dnevno).</li>
<li>Odaberite vrijeme i učestalost pokretanja zadatka.</li>
<li>Odaberite “Start a Program” kao radnju.</li>
<li>Pregledajte i odaberite batch skriptu koju ste kreirali (<code>backup_database.bat</code>).</li>
<li>Kliknite “Finish” da završite kreiranje zadatka.</li>
</ul>
</li>
</ol>
<h3>Ručno Pokretanje Batch Datoteke</h3>
<p>Ako ne želite koristiti automatsko pokretanje putem Task Scheduler-a, možete ručno pokrenuti batch datoteku. Evo kako to učiniti:</p>
<ol>
<li><strong>Pronađite batch datoteku:</strong>
<ul>
<li>Otvorite File Explorer i navigirajte do lokacije gdje ste spremili <code>backup_database.bat</code>.</li>
</ul>
</li>
<li><strong>Pokrenite batch datoteku:</strong>
<ul>
<li>Dvaput kliknite na <code>backup_database.bat</code> datoteku.</li>
<li>Batch skripta će se izvršiti i kreirati backup baze podataka na specificiranoj lokaciji.</li>
</ul>
</li>
</ol>
<h3>Zaključak</h3>
<p>Automatizacija backup procesa baza podataka može vam uštedjeti mnogo vremena i osigurati da su vaši podaci uvijek sigurni. Slijedeći gore navedene korake, možete jednostavno kreirati i automatizirati backup procese na vašem Windows sustavu. Ako želite ručno pokretati backup, dovoljno je dvaput kliknuti na kreiranu batch datoteku.</p>
</div></div></div></div></div>
<p>Objava <a href="https://hetrih.com/automatski-backup-postgres-baze-na-windowsu/">Kako napraviti automatski backup postgres baze podataka na windowsu</a> pojavila se prvi puta na <a href="https://hetrih.com">Hetrih.com</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
