Help
RSS
API
Feed
Maltego
Contact
Domain > cdn.markontech.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2019-11-25
104.28.5.12
(
ClassC
)
2021-01-18
104.21.2.43
(
ClassC
)
2025-04-09
104.21.112.1
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Wed, 09 Apr 2025 09:41:56 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveCache-Control: max-age3600Expires: Wed, 09 Apr 2025 10:41:56 GMTLocation: https://cdn.markontech.com/Report-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sI%2F5kZJ%2Bj6ny3I7B0QOhnIC%2Fzd%2BfH%2Blr5cd8WGpkflCPktAVgNrAAP%2Fw7xyZTQlsDVT%2F7%2F%2BUIj9T7%2Fi2F5UaYkspZLcQC69SL0XF1NPG4TyZtXfL%2BUz%2Fn3JIZSHvoz08yI1ONzqY%3D},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 92d90d315d3870b9-PDXalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt5905&min_rtt5905&rtt_var2952&sent1&recv3&lost0&retrans0&sent_bytes0&recv_bytes57&delivery_rate0&cwnd250&unsent_bytes0&cid0000000000000000&ts0&x0 html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>cloudflare/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Wed, 09 Apr 2025 09:41:56 GMTContent-Type: text/htmlTransfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareNel: {success_fraction:0,report_to:cf-nel,max_age:604800}Cache-Control: , private, s-maxage0, proxy-revalidateDisplay: orig_site_solLast-Modified: Wed, 29 Jan 2025 23:50:44 GMTPagespeed: offPermissions-Policy: geolocation(); midi(); notifications(); push(); sync-xhr(); accelerometer(); gyroscope(); magnetometer(); payment(); usb(); vr(); camera(); microphone(); speaker(); vibrate(); ambient-light-sensor(); autoplay(); encrypted-media(); execute-clipboard(); document-domain(); fullscreen(); imagecapture(); lazyload(); legacy-image-formats(); oversized-images(); unoptimized-lossy-images(); unoptimized-lossless-images(); unsized-media(); vertical-scroll(); web-share(); xr-spatial-tracking();Referrer-Policy: no-referrerResponse: 200Cf-Ray: 92d90d31a806fc83-PDXStrict-Transport-Security: max-age31536000; includeSubDomainsVary: Accept-EncodingX-Content-Type-Options: nosniffX-Ezoic-Cdn: BypassX-Frame-Options: DENYX-Middleton-Display: orig_site_solX-Middleton-Response: 200X-Sol: origX-Xss-Protection: 1; modeblockCf-Cache-Status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?scSjquQtAV7XrDrq8WcBuCJvQw7ePTyRG%2B26vYH7ZrAZ2GMEbRvAV6nCnRQwb3zDz9%2BTHtrg2b8g16rWYcBv5LsQFKh7uNApAUAAiDImL3gC6%2F2k5GbAzSE8CW1CGLHveHeC%2BMbA%3D},group:cf-nel,max_age:604800}Set-Cookie: ezoicteststable; HttpOnly; Path/; Domainmarkontech.com; ExpiresWed, 09 Apr 2025 10:11:56 GMTalt-svc: h3:443; ma86400server-timing: cfL4;desc?protoTCP&rtt5492&min_rtt5337&rtt_var1605&sent5&recv6&lost0&retrans0&sent_bytes2859&recv_bytes729&delivery_rate542626&cwnd252&unsent_bytes0&cideae6259bd6451ba8&ts618&x0 !DOCTYPE html>html langen dirauto>head>meta charsetutf-8/>script>var __ezHttpConsent{setByCat:function(src,tagType,attributes,category,force,customSetScriptFnnull){var setScriptfunction(){if(force||window.ezTcfConsentcategory){if(typeof customSetScriptFnfunction){customSetScriptFn();}else{var scriptElementdocument.createElement(tagType);scriptElement.srcsrc;attributes.forEach(function(attr){for(var key in attr){if(attr.hasOwnProperty(key)){scriptElement.setAttribute(key,attrkey);}}});var firstScriptdocument.getElementsByTagName(tagType)0;firstScript.parentNode.insertBefore(scriptElement,firstScript);}}};if(force||(window.ezTcfConsent&&window.ezTcfConsent.loaded)){setScript();}else if(typeof getEzConsentDatafunction){getEzConsentData().then(function(ezTcfConsent){if(ezTcfConsent&&ezTcfConsent.loaded){setScript();}else{console.error(cannot get ez consent data);forcetrue;setScript();}});}else{forcetrue;setScript();console.error(getEzConsentData is not a function);}},};/script>script>var ezTcfConsentwindow.ezTcfConsent?window.ezTcfConsent:{loaded:false,store_info:false,develop_and_improve_services:false,measure_ad_performance:false,measure_content_performance:false,select_basic_ads:false,create_ad_profile:false,select_personalized_ads:false,create_content_profile:false,select_personalized_content:false,understand_audiences:false,use_limited_data_to_select_content:false,};function getEzConsentData(){return new Promise(function(resolve){document.addEventListener(ezConsentEvent,function(event){var ezTcfConsentevent.detail.ezTcfConsent;resolve(ezTcfConsent);});});}/script>script>if(typeof _setEzCookies!function){function _setEzCookies(ezConsentData){var cookieswindow.ezCookieQueue;for(var i0;icookies.length;i++){var cookiecookiesi;if(ezConsentData&&ezConsentData.loaded&&ezConsentDatacookie.tcfCategory){document.cookiecookie.name++cookie.value;}}}}window.ezCookieQueuewindow.ezCookieQueue||;if(typeof addEzCookies!function){function addEzCookies(arr){window.ezCookieQueue...window.ezCookieQueue,...arr;}}addEzCookies({name:ezoab_140648,value:mod174; Path/; Domainmarkontech.com; Max-Age7200,tcfCategory:store_info,isEzoic:true,});if(window.ezTcfConsent&&window.ezTcfConsent.loaded){_setEzCookies(window.ezTcfConsent);}else if(typeof getEzConsentDatafunction){getEzConsentData().then(function(ezTcfConsent){if(ezTcfConsent&&ezTcfConsent.loaded){_setEzCookies(window.ezTcfConsent);}else{console.error(cannot get ez consent data);_setEzCookies(window.ezTcfConsent);}});}else{console.error(getEzConsentData is not a function);_setEzCookies(window.ezTcfConsent);}/script>script typetext/javascript data-ezscrexfalse data-cfasyncfalse>window._ezaq Object.assign({edge_cache_status:11,edge_response_time:546,url:https://cdn.markontech.com/}, typeof window._ezaq ! undefined ? window._ezaq : {});/script>script typetext/javascript data-ezscrexfalse data-cfasyncfalse>window._ezaq Object.assign({ab_test_id:mod174}, typeof window._ezaq ! undefined ? window._ezaq : {});window.__ezwindow.__ez||{};window.__ez.tf{vacbc:true};/script>script typetext/javascript data-ezscrexfalse data-cfasyncfalse>window.ezDisableAds true;/script>script srchttps://cmp.gatekeeperconsent.com/min.js async>/script>script data-ezscrexfalse data-cfasyncfalse data-pagespeed-no-defer>var __ez__ez||{};__ez.stmsDate.now();__ez.evt{};__ez.script{};__ez.ck__ez.ck||{};__ez.template{};__ez.template.isOrigtrue;__ez.queue__ez.queue||function(){var e0,i0,t,n!1,o,r,s!0,afunction(e,i,n,o,r,s,a){var larguments.length>7&&void 0!arguments7?arguments7:window,dthis;this.namee,this.funcNamei,this.parametersnulln?null:w(n)?n:n,this.isBlocko,this.blockedByr,this.deleteWhenCompletes,this.isError!1,this.isComplete!1,this.isInitialized!1,this.proceedIfErrora,this.fWindowl,this.isTimeDelay!1,this.processfunction(){f(... func +e),d.isInitialized!0,d.isComplete!0,f(... func.apply: +e);var id.funcName.split(.),nnull,othis.fWindow||window;i.length>3||(n3i.length?oi0i1i2:2i.length?oi0i1:od.funcName),null!n&&n.apply(null,this.parameters),!0d.deleteWhenComplete&&delete te,!0d.isBlock&&(f(----- FD: +d.name),m())}},lfunction(e,i,t,n,o,r,s){var aarguments.length>7&&void 0!arguments7?arguments7:window,lthis;this.namee,this.pathi,this.asynco,this.deferr,this.isBlockt,this.blockedByn,this.isInitialized!1,this.isError!1,this.isComplete!1,this.proceedIfErrors,this.fWindowa,this.isTimeDelay!1,this.isPathfunction(e){return/e0&&/!e1},this.getSrcfunction(e){return void 0!window.__ezScriptHost&&this.isPath(e)&&banger.js!this.name?window.__ezScriptHost+e:e},this.processfunction(){l.isInitialized!0,f(... file +e);var ithis.fWindow?this.fWindow.document:document,ti.createElement(script);t.srcthis.getSrc(this.path),!0o?t.async!0:!0r&&(t.defer!0),t.onerrorfunction(){var e{url:window.location.href,name:l.name,path:l.path,user_agent:window.navigator.userAgent};undefined!typeof _ezaq&&(e.pageview_id_ezaq.page_view_id);var iencodeURIComponent(JSON.stringify(e)),tnew XMLHttpRequest;t.open(GET,//g.ezoic.net/ezqlog?d+i,!0),t.send(),f(----- ERRD: +l.name),l.isError!0,!0l.isBlock&&m()},t.onreadystatechanget.onloadfunction(){var et.readyState;f(----- FD: +l.name),e&&!/loaded|complete/.test(e)||(l.isComplete!0,!0l.isBlock&&m())},i.getElementsByTagName(head)0.appendChild(t)}},dfunction(e,i){this.namee,this.path,this.async!1,this.defer!1,this.isBlock!1,this.blockedBy,this.isInitialized!0,this.isError!1,this.isCompletei,this.proceedIfError!1,this.isTimeDelay!1,this.processfunction(){}};function c(e,i,n,s,a,d,c,u,f){var mnew l(e,i,n,s,a,d,c,f);!0u?oem:rem,tem,h(m)}function h(e){!0!u(e)&&0!s&&e.process()}function u(e){if(!0e.isTimeDelay&&!1n)return f(e.name+ blocked TIME DELAY!),!0;if(w(e.blockedBy))for(var i0;ie.blockedBy.length;i++){var oe.blockedByi;if(!1t.hasOwnProperty(o))return f(e.name+ blocked +o),!0;if(!0e.proceedIfError&&!0to.isError)return!1;if(!1to.isComplete)return f(e.name+ blocked +o),!0}return!1}function f(e){var iwindow.location.href,tnew RegExp(?&ezq(^*),i).exec(i);1(t?t1:null)&&console.debug(e)}function m(){++e>200||(f(lets go),p(o),p(r))}function p(e){for(var i in e)if(!1!e.hasOwnProperty(i)){var tei;!0t.isComplete||u(t)||!0t.isInitialized||!0t.isError?!0t.isError?f(t.name+: error):!0t.isComplete?f(t.name+: complete already):!0t.isInitialized&&f(t.name+: initialized already):t.process()}}function w(e){returnobject ArrayObject.prototype.toString.call(e)}return window.addEventListener(load,(function(){setTimeout((function(){n!0,f(TDELAY -----),m()}),5e3)}),!1),{addFile:c,addFileOnce:function(e,i,n,o,r,s,a,l,d){te||c(e,i,n,o,r,s,a,l,d)},addDelayFile:function(e,i){var nnew l(e,i,!1,,!1,!1,!0);n.isTimeDelay!0,f(e+ ... FILE! TDELAY),ren,ten,h(n)},addFunc:function(e,n,s,l,d,c,u,f,m,p){!0c&&(ee+_+i++);var wnew a(e,n,s,l,d,u,f,p);!0m?oew:rew,tew,h(w)},addDelayFunc:function(e,i,n){var onew a(e,i,n,!1,,!0,!0);o.isTimeDelay!0,f(e+ ... FUNCTION! TDELAY),reo,teo,h(o)},items:t,processAll:m,setallowLoad:function(e){se},markLoaded:function(e){if(e&&0!e.length){if(e in t){var ite;!0i.isComplete?f(i.name+ +e+: error loaded duplicate):(i.isComplete!0,i.isInitialized!0)}else tenew d(e,!0);f(markLoaded dummyfile: +te.name)}},logWhatsBlocked:function(){for(var e in t)!1!t.hasOwnProperty(e)&&u(te)}}}();__ez.evt.addfunction(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent?e.attachEvent(on+t,n):eon+tn()},__ez.evt.removefunction(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent?e.detachEvent(on+t,n):delete eon+t};__ez.script.addfunction(e){var tdocument.createElement(script);t.srce,t.async!0,t.typetext/javascript,document.getElementsByTagName(head)0.appendChild(t)};__ez.dot{};__ez.queue.addFile(/detroitchicago/boise.js, /detroitchicago/boise.js?gcb195-2&cb5, true, , true, false, true, false);__ez.queue.addFile(/parsonsmaize/abilene.js, /parsonsmaize/abilene.js?gcb195-2&cbdc112bb7ea, true, , true, false, true, false);__ez.queue.addFile(/parsonsmaize/mulvane.js, /parsonsmaize/mulvane.js?gcb195-2&cbe75e48eec0, true, /parsonsmaize/abilene.js, true, false, true, false);__ez.queue.addFile(/detroitchicago/birmingham.js, /detroitchicago/birmingham.js?gcb195-2&cb539c47377c, true, /parsonsmaize/abilene.js, true, false, true, false);/script>script data-ezscrexfalse typetext/javascript data-cfasyncfalse>window._ezaq Object.assign({ad_cache_level:1,adpicker_placement_cnt:0,ai_placeholder_cache_level:1,ai_placeholder_placement_cnt:-1,author:Marko Nisic,domain:markontech.com,domain_id:140648,ezcache_level:0,ezcache_skip_code:14,has_bad_image:0,has_bad_words:0,is_sitespeed:0,lt_cache_level:0,response_size:38520,response_size_orig:32782,response_time_orig:507,template_id:120,url:https://cdn.markontech.com/,word_count:0,worst_bad_word_level:0}, typeof window._ezaq ! undefined ? window._ezaq : {});__ez.queue.markLoaded(ezaqBaseReady);/script>script typetext/javascript data-ezscrexfalse data-cfasyncfalse>window.ezAnalyticsStatic true;function analyticsAddScript(script) { var ezDynamic document.createElement(script); ezDynamic.type text/javascript; ezDynamic.innerHTML script; document.head.appendChild(ezDynamic);}function getCookiesWithPrefix() { var allCookies document.cookie.split(;); var cookiesWithPrefix {}; for (var i 0; i allCookies.length; i++) { var cookie allCookiesi.trim(); for (var j 0; j arguments.length; j++) { var prefix argumentsj; if (cookie.indexOf(prefix) 0) { var cookieParts cookie.split(); var cookieName cookieParts0; var cookieValue cookieParts.slice(1).join(); cookiesWithPrefixcookieName decodeURIComponent(cookieValue); break; // Once matched, no need to check other prefixes } } } return cookiesWithPrefix;}function productAnalytics() { var d {pr:6,omd5:623c07bb50591854c5e7f866dfc43767,nar:risk score}; d.u _ezaq.url; d.p _ezaq.page_view_id; d.v _ezaq.visit_uuid; d.ab _ezaq.ab_test_id; d.e JSON.stringify(_ezaq); d.ref document.referrer; d.c getCookiesWithPrefix(active_template, ez, lp_); if(typeof ez_utmParams ! undefined) { d.utm ez_utmParams; } var dataText JSON.stringify(d); var xhr new XMLHttpRequest(); xhr.open(POST,/ezais/analytics?cb1, true); xhr.onload function () { if (xhr.status!200) { return; } if(document.readyState ! loading) { analyticsAddScript(xhr.response); return; } var eventFunc function() { if(document.readyState loading) { return; } document.removeEventListener(readystatechange, eventFunc, false); analyticsAddScript(xhr.response); }; document.addEventListener(readystatechange, eventFunc, false); }; xhr.setRequestHeader(Content-Type,text/plain); xhr.send(dataText);}__ez.queue.addFunc(productAnalytics, productAnalytics, null, true, ezaqBaseReady, false, false, false, true);/script>base hrefhttps://cdn.markontech.com//>meta namegenerator contentHugo 0.139.4/>meta http-equivX-UA-Compatible contentIEedge/>meta nameviewport contentwidthdevice-width,initial-scale1,shrink-to-fitno/>meta namerobots contentindex, follow/>title>MARKONTECH/title>meta namekeywords contentLinux,DevOps,Docker,Ansible,Kubernetes,SysAdmin,Hosting/>meta namedescription contentLinux, DevOps, Kubernetes, Virtualization, Home Lab and more/>meta nameauthor contentMarko Nisic/>link relcanonical hrefhttps://markontech.com//>link crossoriginanonymous href/assets/css/stylesheet.45e028aa8ce0961349adf411b013ee39406be2c0bc80d4ea3fc04555f7f4611a.css integritysha256-ReAoqozglhNJrfQRsBPuOUBr4sC8gNTqP8BFVff0YRo relpreload stylesheet asstyle/>link relicon hrefhttps://markontech.com/%3Clink%20/%20abs%20url%3E/>link relicon typeimage/png sizes16x16 hrefhttps://markontech.com/%3Clink%20/%20abs%20url%3E/>link relicon typeimage/png sizes32x32 hrefhttps://markontech.com/%3Clink%20/%20abs%20url%3E/>link relapple-touch-icon hrefhttps://markontech.com/%3Clink%20/%20abs%20url%3E/>link relmask-icon hrefhttps://markontech.com/%3Clink%20/%20abs%20url%3E/>meta nametheme-color content#2e2e33/>meta namemsapplication-TileColor content#2e2e33/>link relalternate typeapplication/rss+xml hrefhttps://markontech.com/index.xml/>link relalternate typeapplication/json hrefhttps://markontech.com/index.json/>link relalternate hreflangen hrefhttps://markontech.com//>noscript>style>#theme-toggle,.top-link{display:none}/style>style>@media(prefers-color-scheme:dark){:root{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51)}.list{background:var(--theme)}.list:not(.dark)::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-thumb{border-color:var(--theme)}}/style>/noscript>script defer srchttps://umami.null-ops.com/script.js data-website-id459b6fae-31c1-4a5b-a081-941630b4af79>/script>script async srchttps://www.googletagmanager.com/gtag/js?idG-031R35WC05>/script>script>var dnt,doNotTrack!1;if(!1&&(dntnavigator.doNotTrack||window.doNotTrack||navigator.msDoNotTrack,doNotTrackdnt1||dntyes),!doNotTrack){window.dataLayerwindow.dataLayer||;function gtag(){dataLayer.push(arguments)}gtag(js,new Date),gtag(config,G-031R35WC05)}/script>meta propertyog:url contenthttps://markontech.com//>meta propertyog:site_name contentMARKONTECH/>meta propertyog:title contentMARKONTECH/>meta propertyog:description contentLinux, DevOps, Kubernetes, Virtualization, Home Lab and more/>meta propertyog:locale contenten/>meta propertyog:type contentwebsite/>meta propertyog:image contenthttps://markontech.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E/>meta nametwitter:card contentsummary_large_image/>meta nametwitter:image contenthttps://markontech.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E/>meta nametwitter:title contentMARKONTECH/>meta nametwitter:description contentLinux, DevOps, Kubernetes, Virtualization, Home Lab and more/>script typeapplication/ld+json>{@context:https://schema.org,@type:Organization,name:MARKONTECH,url:https://markontech.com/,description:Linux, DevOps, Kubernetes, Virtualization, Home Lab and more,logo:https://markontech.com/%3Clink%20/%20abs%20url%3E,sameAs:https://linkedin.com/in/marko-nisic-973283a7,https://twitter.com/markontechcom,https://markontech.com/index.xml,https://ko-fi.com/markontech}/script>script typetext/javascript>var ezoTemplate old_site_noads;var ezouid 1;var ezoFormfactor 1;/script>script data-ezscrexfalse typetext/javascript>var soc_app_id 0;var did 140648;var ezdomain markontech.com;var ezoicSearchable 1;/script>/head>body classlist idtop>script>localStorage.getItem(pref-theme)dark?document.body.classList.add(dark):localStorage.getItem(pref-theme)light?document.body.classList.remove(dark):window.matchMedia((prefers-color-scheme: dark)).matches&&document.body.classList.add(dark)/script>header classheader>nav classnav>div classlogo>a hrefhttps://markontech.com/ accesskeyh title> $ cd $HOME (Alt + H)>img srchttps://markontech.com/apple-touch-icon.png alt aria-labellogo height35/>> $ cd $HOME/a>div classlogo-switches>button idtheme-toggle accesskeyt title(Alt + T)>svg idmoon width24 height18 viewBox0 0 24 24 fillnone strokecurrentcolor stroke-width2 stroke-linecapround stroke-linejoinround>path dM21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z>/path>/svg>svg idsun width24 height18 viewBox0 0 24 24 fillnone strokecurrentcolor stroke-width2 stroke-linecapround stroke-linejoinround>circle cx12 cy12 r5>/circle>line x112 y11 x212 y23>/line>line x112 y121 x212 y223>/line>line x14.22 y14.22 x25.64 y25.64>/line>line x118.36 y118.36 x219.78 y219.78>/line>line x11 y112 x23 y212>/line>line x121 y112 x223 y212>/line>line x14.22 y119.78 x25.64 y218.36>/line>line x118.36 y15.64 x219.78 y24.22>/line>/svg>/button>/div>/div>ul idmenu>li>a hrefhttps://markontech.com/posts/ titlePosts>span>Posts/span>/a>/li>li>a hrefhttps://markontech.com/categories/ titleCategories>span>Categories/span>/a>/li>li>a hrefhttps://markontech.com/tags/ titleTags>span>Tags/span>/a>/li>li>a hrefhttps://markontech.com/newsletter/ titleNewsletter>span>Newsletter/span>/a>/li>li>a hrefhttps://markontech.com/tip/ titleLeave a tip>span>Leave a tip/span>/a>/li>li>a hrefhttps://markontech.com/about/ titleAbout>span>About/span>/a>/li>li>a hrefhttps://markontech.com/contact/ titleContact>span>Contact/span>/a>/li>li>a hrefhttps://markontech.com/search/ titleSearch (Alt + /) accesskey/>span>Search/span>/a>/li>/ul>/nav>/header>main classmain>article classfirst-entry home-info>header classentry-header>h1>Hello there 👋/h1>/header>div classentry-content>Welcome! Thank you for your visit. I write guides and step by step tutorials on Linux, DevOps, Virtualization, home-labs and more. I do hope the articles here come in handy and you find them useful./div>footer classentry-footer>div classsocial-icons>a hrefhttps://linkedin.com/in/marko-nisic-973283a7 target_blank relnoopener noreferrer me titleLinkedin>svg viewBox0 0 24 24 fillnone strokecurrentcolor stroke-width2 stroke-linecapround stroke-linejoinround>path dM16 8a6 6 0 016 6v7h-4v-7a2 2 0 00-2-2 2 2 0 00-2 2v7h-4v-7a6 6 0 016-6z>/path>rect x2 y9 width4 height12>/rect>circle cx4 cy4 r2>/circle>/svg>/a>a hrefhttps://twitter.com/markontechcom target_blank relnoopener noreferrer me titleX>svg viewBox0 0 24 24 fillcurrentcolor>path dM18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z>/path>/svg>/a>a hrefhttps://markontech.com/index.xml target_blank relnoopener noreferrer me titleRss>svg viewBox0 0 24 24 fillnone strokecurrentcolor stroke-width2 stroke-linecapround stroke-linejoinround>path dM4 11a9 9 0 019 9>/path>path dM4 4a16 16 0 0116 16>/path>circle cx5 cy19 r1>/circle>/svg>/a>a hrefhttps://ko-fi.com/markontech target_blank relnoopener noreferrer me titleKofi>svg viewBox0 -3 23 27 fillnone strokecurrentcolor stroke-width1.8 stroke-linecapround stroke-linejoinround>path dM23.881 8.948c-.773-4.085-4.859-4.593-4.859-4.593H.723c-.604.0-.679.798-.679.798s-.082 7.324-.022 11.822c.164 2.424 2.586 2.672 2.586 2.672s8.267-.023 11.966-.049c2.438-.426 2.683-2.566 2.658-3.734 4.352.24 7.422-2.831 6.649-6.916zm-11.062 3.511c-1.246 1.453-4.011 3.976-4.011 3.976s-.121.119-.31.023c-.076-.057-.108-.09-.108-.09-.443-.441-3.368-3.049-4.034-3.954-.709-.965-1.041-2.7-.091-3.71.951-1.01 3.005-1.086 4.363.407.0.0 1.565-1.782 3.468-.963 1.904.82 1.832 3.011.723 4.311zm6.173.478c-.928.116-1.682.028-1.682.028V7.284h1.77s1.971.551 1.971 2.638c0 1.913-.985 2.667-2.059 3.015z>/path>/svg>/a>/div>/footer>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>Step by step guide: Install Kubernetes NFS CSI with Fluxcd/h2>/header>div classentry-content>p>Install Kubernetes NFS CSI with Fluxcd Overview Hello there Kubernetes explorers and “home-labers”. Here I’ll be covering the steps on how to install Kubernetes NFS CSI with Fluxcd or in another words, I will deploy NFS CSI driver on Kubernetes by using Fluxcd that is already running on the same cluster. This post follows a home-lab series on how I manage some Kubernetes and self hosting stuff on my home-lab(setup ha k3s cluster LINK, deploy fluxcd on kubernetes LINK)..../p>/div>footer classentry-footer>span title2025-01-21 23:10:55 +0100 +0100>Published January 21, 2025/span> · span title2025-01-30 00:44:20 +0100 +0100>Updated January 30, 2025/span> · 5 min · 981 words · Marko Nisic/footer>a classentry-link aria-labelpost link to Step by step guide: Install Kubernetes NFS CSI with Fluxcd hrefhttps://markontech.com/posts/install-kubernetes-nfs-csi-with-fluxcd/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>Kubectl Cheatsheet/h2>/header>div classentry-content>p>Kubectl cheatsheet Get, Describe, Delete, Apply, Rollouts, Expose and Port-forward # BASIC COMMANDS kubectl get pods # List all pods in the current namespace kubectl get nodes # List all nodes in the cluster kubectl get services # List all services in the current namespace kubectl get deployments # List all deployments in the current namespace kubectl describe pod <pod-name> # Show detailed information about a pod kubectl describe node <node-name> # Show detailed information about a node kubectl describe svc <service-name> # Show detailed information about a service kubectl delete pod <pod-name> # Delete a specific pod kubectl delete <resource> <resource-name> # Delete a specific resource (ingress, deployment) kubectl get all -n <namespace> # Show detailed information about all resources and workloads within the defined namespace kubectl get all -n <namespace> -o wide # Show ALL details for all workloads within the defined namespace # NAMESPACES kubectl get namespaces # List all namespaces kubectl get pods -n <namespace> # List pods in a specific namespace kubectl delete namespace <namespace> # Delete a specific namespace # FILTERING OUTPUT kubectl get pods -o wide # List pods with additional details kubectl get pods -n <namespace> # List pods in a specific namespace kubectl get pods --selector <key><value> # List pods using a label selector # CONFIGURATION AND MANAGEMENT kubectl apply -f <file.yaml> # Apply changes to a resource from a YAML file kubectl create namespace <namespace> # Create a new namespace kubectl config view # View Kubernetes cluster configuration kubectl config use-context <context> # Switch between contexts kubectl edit deployment <deployment> # Edit an existing deployment # LOGS AND DEBUGGING kubectl logs <pod-name> # View logs of a specific pod kubectl logs <pod-name> -c <container> # View logs of a specific container in a pod kubectl exec -it <pod-name> -- /bin/bash # Access a pod's shell kubectl top pods # Show resource usage for pods kubectl top nodes # Show resource usage for nodes # DEPLOYMENT MANAGEMENT kubectl scale deployment <deployment> --replicas<count> # Scale a deployment kubectl rollout status deployment <deployment> # Check the status of a deployment kubectl rollout undo deployment <deployment> # Rollback a deployment kubectl rollout restart deployment <deployment-name> # Restart a deployment # PORT-FORWARDING AND ACCESS kubectl port-forward <pod-name> 8080:80 # Forward local port 8080 to pod port 80 kubectl expose pod <pod-name> --typeNodePort --port80 # Expose a pod as a service Ingress and Configmap commands # INSPECTING AND CLEANUP kubectl get events # Show cluster events kubectl delete all --all # Delete all resources in the current namespace kubectl cluster-info # Display cluster information # INGRESS COMMANDS kubectl get ingress # List all Ingress resources in the current namespace kubectl get ingress -n <namespace> # List all Ingress resources in a specific namespace kubectl describe ingress <ingress-name> # Show details of a specific Ingress resource kubectl edit ingress <ingress-name> # Edit an existing Ingress resource kubectl delete ingress <ingress-name> # Delete a specific Ingress resource # INGRESS LOGS kubectl logs <ingress-controller-pod> # Check logs of the ingress controller # ADDITIONAL INGRESS CONTROLLER COMMANDS kubectl get pods -n <ingress-namespace> # Verify the Ingress controller is running kubectl get svc -n <ingress-namespace> # Get the service of the Ingress controller kubectl describe svc <ingress-controller-service> -n <namespace> # View details of the Ingress controller service # CONFIGMAP COMMANDS kubectl create configmap <configmap-name> --from-literal<key><value> # Create a ConfigMap from literal values kubectl create configmap <configmap-name> --from-file<file> # Create a ConfigMap from a file kubectl get configmaps # List all ConfigMaps in the current namespace kubectl get configmaps -n <namespace> # List all ConfigMaps in a specific namespace kubectl describe configmap <configmap-name> # Show details of a specific ConfigMap kubectl edit configmap <configmap-name> # Edit an existing ConfigMap kubectl delete configmap <configmap-name> # Delete a specific ConfigMap # Use ConfigMap in a Pod kubectl exec -it <pod-name> -- env | grep <configmap-key> # Verify the ConfigMap is mounted as environment variables Node taint, node drain commands, daemonset & statefulset commands # TAINTS COMMANDS kubectl taint nodes <node-name> <key><value>:<effect> # Add a taint to a node # Example: kubectl taint nodes node1 keyvalue:NoSchedule # Prevent pods without tolerations from scheduling on this node kubectl taint nodes <node-name> <key>- # Remove a taint from a node # Example: kubectl taint nodes node1 key- # Removes the taint with key "key" kubectl get nodes --show-labels # List nodes with their labels and taints kubectl describe node <node-name> # View details of a node, including taints # DRAIN COMMANDS kubectl drain <node-name> # Evict all pods from a node (prepare for maintenance) # Example: kubectl drain node1 --ignore-daemonsets --delete-emptydir-data # Options: # --ignore-daemonsets: Ignore daemonsets during drain # --delete-emptydir-data: Force eviction of pods with 'emptyDir' volumes kubectl cordon <node-name> # Mark a node as unschedulable (prevent new pods from being scheduled) # Example: kubectl cordon node1 kubectl uncordon <node-name> # Mark a node as schedulable (allow new pods to be scheduled) # Example: kubectl uncordon node1 # ADDITIONAL USEFUL COMMANDS kubectl get nodes -o wide # View node statuses and scheduling availability kubectl describe node <node-name> # Check node taints and conditions kubectl get pods -o wide # Verify where pods are running kubectl delete pod <pod-name> --grace-period0 --force # Force delete a pod (if drain gets stuck) # DAEMONSET COMMANDS kubectl get daemonsets # List all DaemonSets in the current namespace kubectl get daemonsets -n <namespace> # List all DaemonSets in a specific namespace kubectl describe daemonset <daemonset-name> # Show details of a specific DaemonSet kubectl edit daemonset <daemonset-name> # Edit a DaemonSet definition kubectl delete daemonset <daemonset-name> # Delete a specific DaemonSet # STATEFULSET COMMANDS kubectl get statefulsets # List all StatefulSets in the current namespace kubectl get statefulsets -n <namespace> # List all StatefulSets in a specific namespace kubectl describe statefulset <statefulset-name> # Show details of a specific StatefulSet kubectl edit statefulset <statefulset-name> # Edit a StatefulSet definition kubectl delete statefulset <statefulset-name> # Delete a specific StatefulSet kubectl scale statefulset <statefulset-name> --replicas<count> # Scale a StatefulSet Kubectl kubernetes RBAC commands # RBAC (ROLE-BASED ACCESS CONTROL) COMMANDS kubectl get roles # List all roles in the current namespace kubectl get clusterroles # List all cluster-wide roles kubectl get rolebindings # List all RoleBindings in the current namespace kubectl get clusterrolebindings # List all cluster-wide RoleBindings kubectl describe role <role-name> # View details of a specific Role kubectl describe clusterrole <clusterrole-name> # View details of a ClusterRole kubectl create role <role-name> --verb<verb> --resource<resource> --namespace<namespace> # Example: kubectl create role pod-reader --verbget,list --resourcepods --namespacedev kubectl create rolebinding <binding-name> --role<role-name> --user<user> --namespace<namespace> # Example: kubectl create rolebinding pod-reader-binding --rolepod-reader --userdev-user --namespacedev kubectl delete role <role-name> # Delete a specific Role kubectl delete rolebinding <binding-name> # Delete a specific RoleBinding kubectl auth can-i <verb> <resource> --namespace<namespace> # Example: kubectl auth can-i create pods --namespacedev # Check RBAC permissions # CRD (CUSTOM RESOURCE DEFINITION) COMMANDS kubectl get crds # List all CRDs in the cluster kubectl describe crd <crd-name> # View details of a specific CRD kubectl delete crd <crd-name> # Delete a specific CRD kubectl get <cr-kind> # List custom resources of the given kind kubectl get <cr-kind> -n <namespace> # List custom resources in a specific namespace kubectl describe <cr-kind> <cr-name> # Show details of a specific custom resource kubectl apply -f <cr.yaml> # Create or update a custom resource kubectl delete <cr-kind> <cr-name> # Delete a specific custom resource kubectl get crds -o wide # Show additional details about CRDs kubectl explain <cr-kind> # Show schema and details about the custom resource/p>/div>footer classentry-footer>span title2025-01-20 23:13:36 +0100 +0100>Published January 20, 2025/span> · span title2025-01-21 22:45:54 +0100 +0100>Updated January 21, 2025/span> · 6 min · 1247 words · Marko Nisic/footer>a classentry-link aria-labelpost link to Kubectl Cheatsheet hrefhttps://markontech.com/posts/kubectl-cheatsheet/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>How to Install FluxCD on a Kubernetes Cluster/h2>/header>div classentry-content>p>How to Install FluxCD on a Kubernetes Cluster (Step-by-Step Guide) Overview Hello “home-labers”, devops people and kubernetes adventurers. This post is a continuation of my new home-lab series and here I’ll be talking about the steps I took in order to install FluxCD on a Kubernetes cluster. In my case, I run a HA k3s cluster on my home-lab(link to the step by step guide on high availability k3s cluster setup - LINK) and I decided to go full GitOps and try to integrate all the best practices to deploy apps, manage infrastructure and provision resources. The first step for that was to choose a GitOps tool and for me it was FluxCD LINK..../p>/div>footer classentry-footer>span title2025-01-15 21:49:37 +0100 +0100>Published January 15, 2025/span> · span title2025-01-30 00:44:20 +0100 +0100>Updated January 30, 2025/span> · 8 min · 1501 words · Marko Nisic/footer>a classentry-link aria-labelpost link to How to Install FluxCD on a Kubernetes Cluster hrefhttps://markontech.com/posts/install-fluxcd-on-a-kubernetes/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>How to setup High Availability K3s Cluster/h2>/header>div classentry-content>p>How to setup High Availability K3s Cluster Overview Hi there Kubernetes explorers and ‘home labers’. Here i want to document the steps how to setup high availability k3s cluster with kube-vip. This setup will enable us to have an HA kubernetes cluster without the need of adding an external load balancer. I want to avoid of wasting as much of resources as possible and allocate most of the resources to the cluster, this is the way - for me at least :). This setup will be created on VMs, running on top of Proxmox cluster..../p>/div>footer classentry-footer>span title2025-01-05 15:09:37 +0100 +0100>Published January 5, 2025/span> · span title2025-01-30 00:50:21 +0100 +0100>Updated January 30, 2025/span> · 10 min · 1988 words · Marko Nisic/footer>a classentry-link aria-labelpost link to How to setup High Availability K3s Cluster hrefhttps://markontech.com/posts/setup-high-availability-k3s-cluster/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>How to create symbolic links in Linux step by step/h2>/header>div classentry-content>p>Overview Hi there fellow Linux learners! Hope you’re ready to expand your knowledge about Linux. Today’s topic is how to create symlinks in Linux, which is short for symbolic links. There are two different kinds of links:soft links hard links In this article we’ll focus on soft symbolic links. Hard links will be on menu some other time. Don’t be intimidated by its name, you don’t have to write symbols, neither remember or decipher ones. Soft symbolic links is just the fancy name for shortcuts. As simple as that. To create symlink you’ll have to use ln command (short for link – makes sense, eh?)..../p>/div>footer classentry-footer>span title2024-12-24 07:29:05.139 +0000 UTC>Published December 24, 2024/span> · span title2024-12-24 08:30:06 +0100 +0100>Updated December 24, 2024/span> · 5 min · 993 words · Marko Nisic/footer>a classentry-link aria-labelpost link to How to create symbolic links in Linux step by step hrefhttps://markontech.com/posts/create-symlinks-in-linux/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>Linux commands to copy files and folders/h2>/header>div classentry-content>p>Overview Hello fellow Linux enthusiasts. Hope you’re all well and ready to broaden your knowledge. Today’s topic will be about the various linux commands to copy files and folders. And no, it’s with “right-click and copy file”. We do this the cool way, with the terminal. So, without much further delay let’s get our hands dirty.We’ll be covering several different methods and tools we can utilize that will allow us to perfom the copy actions for various scenarios and use cases..../p>/div>footer classentry-footer>span title2024-12-23 14:01:20.753 +0000 UTC>Published December 23, 2024/span> · span title2024-12-23 15:04:30 +0100 +0100>Updated December 23, 2024/span> · 8 min · 1554 words · Marko Nisic/footer>a classentry-link aria-labelpost link to Linux commands to copy files and folders hrefhttps://markontech.com/posts/linux-commands-to-copy-files-and-folders/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>Convert Virtualbox VMs to QEMU/KVMVDI to QCOW2/h2>/header>div classentry-content>p>Overview In the following article, we’ll go through the steps how to convert Virtualbox VMs to QEMU/KVM hypervisor, or in another words, how to convert VM files from VDI to QCOW2 extenstion. This process is useful especially when you need to migrate from virtualbox to KVM or just want to try out the KVM hypervisor without the need to create new machines from the start.What is VDI? VDI(Virtual desktop infrastructure) is an file extension of the HDD disc image file for an Virtual machines that are commonly used by hypervisor solutions such as Virtualbox..../p>/div>footer classentry-footer>span title2024-12-16 23:36:01.586 +0000 UTC>Published December 16, 2024/span> · span title2024-12-17 00:36:26 +0100 +0100>Updated December 17, 2024/span> · 4 min · 651 words · Marko Nisic/footer>a classentry-link aria-labelpost link to Convert Virtualbox VMs to QEMU/KVMVDI to QCOW2 hrefhttps://markontech.com/posts/convert-virtualbox-vms-to-qemu-kvm/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>How to setup NFS server on Alma Linux(NFS share)/h2>/header>div classentry-content>p>This article will act as a guide for a procedure - how to setup NFS server on Alma Linux or in another words and how to create an NFS share on Alma Linux. NFS stands for Network File System is a network file sharing protocol that allows you to share files and directories over the network. You can mount the file systems over a network and use them as your local drive. NFS server is a client-server architecture where multiple clients can mount the shared drive from the NFS server and share resources between Linux systems. By using NFS, you can save space and the cost of storage, especially when you are using cloud instances..../p>/div>footer classentry-footer>span title2024-12-16 23:27:30.217 +0000 UTC>Published December 16, 2024/span> · span title2024-12-17 00:29:46 +0100 +0100>Updated December 17, 2024/span> · 4 min · 766 words · Marko Nisic/footer>a classentry-link aria-labelpost link to How to setup NFS server on Alma Linux(NFS share) hrefhttps://markontech.com/posts/setup-nfs-server-on-alma-linux/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>6 Open Source Kubernetes Desktop Tools for local development/h2>/header>div classentry-content>p>Exploring Open Source Kubernetes Desktop tools for local development Overview Hello there Kubernetes adventurers. Kubernetes is the go-to solution for container orchestration in modern software development. But for many developers, working with Kubernetes locally can be challenging. Fortunately, there are variety of desktop Kubernetes tools to simplify the process, allowing you to experiment, learn, and develop applications right on your machine.In this post, we’ll explore some of the best open source Kubernetes desktop tools available, highlighting their pros and cons to help you choose the one that suits your needs. So, let’s get started..../p>/div>footer classentry-footer>span title2024-12-16 16:39:57 +0100 +0100>Published December 16, 2024/span> · span title2024-12-17 09:00:44 +0100 +0100>Updated December 17, 2024/span> · 3 min · 493 words · Marko Nisic/footer>a classentry-link aria-labelpost link to 6 Open Source Kubernetes Desktop Tools for local development hrefhttps://markontech.com/posts/open-source-kubernetes-desktop-tools/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>Sudo vs su command differences/h2>/header>div classentry-content>p>Sudo vs su command differences Overview Hello there fellow Linuxers. Hopefully you’re all being practicing your skills or at least learning new skills. On your journey learning or trying to master Linux you must have came across certain commands that you saw others use and you just copy-paste it? For example, I’ve noticed that new users have troubles understanding the difference in (not holy) trinity of commands sudo, su and su- so they don’t use them properly. Ergo, on today’s menu is a special about sudo vs su command differences -. Let’s get started..../p>/div>footer classentry-footer>span title2024-12-14 09:52:27 +0100 +0100>Published December 14, 2024/span> · span title2024-12-15 14:45:18 +0100 +0100>Updated December 15, 2024/span> · 4 min · 764 words · Marko Nisic/footer>a classentry-link aria-labelpost link to Sudo vs su command differences hrefhttps://markontech.com/posts/sudo-vs-su-command-differences/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>Use MinIO as a Backend for Terraform Remote State/h2>/header>div classentry-content>p>Overview Hello there DevOps and IaC enthusiast. In this article we will introduce MinIO, an interesting piece of software that can be self-hosted and help us solve a problem managing the Terraform remote state on the on-premises environemnts(Bare metal servers and data centers). And that’s our goal essentially - to use MinIO as a backend for Terraform remote state. My best use case for this setup is to utilizite it for hypervisor softwares(VMware, Proxmox), on prem kubernetes, docker too and so on..../p>/div>footer classentry-footer>span title2024-11-09 12:11:08 +0100 +0100>Published November 9, 2024/span> · span title2024-12-13 01:12:45 +0100 +0100>Updated December 13, 2024/span> · 5 min · 921 words · Marko Nisic/footer>a classentry-link aria-labelpost link to Use MinIO as a Backend for Terraform Remote State hrefhttps://markontech.com/posts/use-minio-as-a-backend-for-terraform-remote-state/>/a>/article>article classpost-entry>header classentry-header>h2 classentry-hint-parent>Deploy Docker container using Ansible/h2>/header>div classentry-content>p>Overview Hello there fellow Linux adventurers. I hope you’re ready for today’s adventure in the land of automation. Through this article you’ll be shown steps how to deploy Docker container using Ansible on a remote Linux machine that runs Docker engine. By the end of article you should have enough understanding how to automate process of Docker container deployment on a multiple Linux inventory, with preset of environment variables and configs for needed Docker container..../p>/div>footer classentry-footer>span title2024-11-07 12:20:51.348 +0000 UTC>Published November 7, 2024/span> · span title2024-11-07 21:13:16 +0100 +0100>Updated November 7, 2024/span> · 6 min · 1104 words · Marko Nisic/footer>a classentry-link aria-labelpost link to Deploy Docker container using Ansible hrefhttps://markontech.com/posts/deploy-docker-container-using-ansible/>/a>/article>footer classpage-footer>nav classpagination>a classnext hrefhttps://markontech.com/page/2/>Next (2 / 10) »/a>/nav>/footer>/main>footer classfooter>span>© 2025 a hrefhttps://markontech.com/>MARKONTECH/a>/span> ·span>Powered bya hrefhttps://gohugo.io/ relnoopener noreferrer target_blank>Hugo/a> & a hrefhttps://github.com/adityatelange/hugo-PaperMod/ relnoopener target_blank>PaperMod/a>/span>/footer>a href#top aria-labelgo to top titleGo to Top (Alt + G) classtop-link idtop-link accesskeyg>svg viewBox0 0 12 6 fillcurrentcolor>path dM12 6H0l6-6z>/path>/svg>/a>script>let menudocument.getElementById(menu);menu&&(menu.scrollLeftlocalStorage.getItem(menu-scroll-position),menu.onscrollfunction(){localStorage.setItem(menu-scroll-position,menu.scrollLeft)}),document.querySelectorAll(ahref^#).forEach(e>{e.addEventListener(click,function(e){e.preventDefault();var tthis.getAttribute(href).substr(1);window.matchMedia((prefers-reduced-motion: reduce)).matches?document.querySelector(`id${decodeURIComponent(t)}`).scrollIntoView():document.querySelector(`id${decodeURIComponent(t)}`).scrollIntoView({behavior:smooth}),ttop?history.replaceState(null,null, ):history.pushState(null,null,`#${t}`)})})/script>script>var mybuttondocument.getElementById(top-link);window.onscrollfunction(){document.body.scrollTop>800||document.documentElement.scrollTop>800?(mybutton.style.visibilityvisible,mybutton.style.opacity1):(mybutton.style.visibilityhidden,mybutton.style.opacity0)}/script>script>document.getElementById(theme-toggle).addEventListener(click,()>{document.body.className.includes(dark)?(document.body.classList.remove(dark),localStorage.setItem(pref-theme,light)):(document.body.classList.add(dark),localStorage.setItem(pref-theme,dark))})/script>script data-cfasyncfalse>function _emitEzConsentEvent(){var customEventnew CustomEvent(ezConsentEvent,{detail:{ezTcfConsent:window.ezTcfConsent},bubbles:true,cancelable:true,});document.dispatchEvent(customEvent);}(function(window,document){function _setAllEzConsentTrue(){window.ezTcfConsent.loadedtrue;window.ezTcfConsent.store_infotrue;window.ezTcfConsent.develop_and_improve_servicestrue;window.ezTcfConsent.measure_ad_performancetrue;window.ezTcfConsent.measure_content_performancetrue;window.ezTcfConsent.select_basic_adstrue;window.ezTcfConsent.create_ad_profiletrue;window.ezTcfConsent.select_personalized_adstrue;window.ezTcfConsent.create_content_profiletrue;window.ezTcfConsent.select_personalized_contenttrue;window.ezTcfConsent.understand_audiencestrue;window.ezTcfConsent.use_limited_data_to_select_contenttrue;window.ezTcfConsent.select_personalized_contenttrue;}function _clearEzConsentCookie(){document.cookieezCMPCookieConsenttcf2;Domain.markontech.com;Path/;expiresThu, 01 Jan 1970 00:00:00 GMT;}_clearEzConsentCookie();if(typeof window.__tcfapi!undefined){window.ezgconsentfalse;var amazonHasRunfalse;function _ezAllowed(tcdata,purpose){return(tcdata.purpose.consentspurpose||tcdata.purpose.legitimateInterestspurpose);}function _handleConsentDecision(tcdata){window.ezTcfConsent.loadedtrue;if(!tcdata.vendor.consents347&&!tcdata.vendor.legitimateInterests347){window._emitEzConsentEvent();return;}window.ezTcfConsent.store_info_ezAllowed(tcdata,1);window.ezTcfConsent.develop_and_improve_services_ezAllowed(tcdata,10);window.ezTcfConsent.measure_content_performance_ezAllowed(tcdata,8);window.ezTcfConsent.select_basic_ads_ezAllowed(tcdata,2);window.ezTcfConsent.create_ad_profile_ezAllowed(tcdata,3);window.ezTcfConsent.select_personalized_ads_ezAllowed(tcdata,4);window.ezTcfConsent.create_content_profile_ezAllowed(tcdata,5);window.ezTcfConsent.measure_ad_performance_ezAllowed(tcdata,7);window.ezTcfConsent.use_limited_data_to_select_content_ezAllowed(tcdata,11);window.ezTcfConsent.select_personalized_content_ezAllowed(tcdata,6);window.ezTcfConsent.understand_audiences_ezAllowed(tcdata,9);window._emitEzConsentEvent();}function _handleGoogleConsentV2(tcdata){if(!tcdata||!tcdata.purpose||!tcdata.purpose.consents){return;}var googConsentV2{};if(tcdata.purpose.consents1){googConsentV2.ad_storagegranted;googConsentV2.analytics_storagegranted;}if(tcdata.purpose.consents3&&tcdata.purpose.consents4){googConsentV2.ad_personalizationgranted;}if(tcdata.purpose.consents1&&tcdata.purpose.consents7){googConsentV2.ad_user_datagranted;}if(googConsentV2.analytics_storagedenied){gtag(set,url_passthrough,true);}gtag(consent,update,googConsentV2);}__tcfapi(addEventListener,2,function(tcdata,success){if(!success||!tcdata){window._emitEzConsentEvent();return;}if(!tcdata.gdprApplies){_setAllEzConsentTrue();window._emitEzConsentEvent();return;}if(tcdata.eventStatususeractioncomplete||tcdata.eventStatustcloaded){if(typeof gtag!undefined){_handleGoogleConsentV2(tcdata);}_handleConsentDecision(tcdata);if(tcdata.purpose.consents1true&&tcdata.vendor.consents755!false){window.ezgconsenttrue;(adsbygooglewindow.adsbygoogle||).pauseAdRequests0;}if(window.__ezconsent){__ezconsent.setEzoicConsentSettings(ezConsentCategories);}__tcfapi(removeEventListener,2,function(success){return null;},tcdata.listenerId);if(!(tcdata.purpose.consents1true&&_ezAllowed(tcdata,2)&&_ezAllowed(tcdata,3)&&_ezAllowed(tcdata,4))){if(typeof __ezobject&&typeof __ez.bitobject&&typeof window_ezaqobject&&typeof window_ezaqpage_view_idstring){__ez.bit.Add(window_ezaqpage_view_id,new __ezDotData(non_personalized_ads,true),);}}}});}else{_setAllEzConsentTrue();window._emitEzConsentEvent();}})(window,document);/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]