backy/docs/public/config/command-lists/index.html

328 lines
31 KiB
HTML
Raw Permalink Normal View History

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0">
<meta name="generator" content="Hugo 0.110.0">
<meta name="generator" content="Relearn 5.11.2">
<meta name="description" content="This page tells you how to get started with Backy.
">
<title>Command Lists - A tool for commands</title>
<!-- https://github.com/filamentgroup/loadCSS/blob/master/README.md#how-to-use -->
<link href="/css/fontawesome-all.min.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/fontawesome-all.min.css?1676866111" rel="stylesheet"></noscript>
<link href="/css/auto-complete.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/auto-complete.css?1676866111" rel="stylesheet"></noscript>
<link href="/css/perfect-scrollbar.min.css?1676866111" rel="stylesheet">
<link href="/css/nucleus.css?1676866111" rel="stylesheet">
<link href="/css/fonts.css?1676866111" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="/css/fonts.css?1676866111" rel="stylesheet"></noscript>
<link href="/css/theme.css?1676866111" rel="stylesheet">
<link href="/css/theme-auto.css?1676866111" rel="stylesheet" id="variant-style">
<link href="/css/ie.css?1676866111" rel="stylesheet">
<link href="/css/variant.css?1676866111" rel="stylesheet">
<link href="/css/print.css?1676866111" rel="stylesheet" media="print">
<script src="/js/url.js?1676866111"></script>
<script src="/js/variant.js?1676866111"></script>
<script>
// hack to let hugo tell us how to get to the root when using relativeURLs, it needs to be called *url= for it to do its magic:
// https://github.com/gohugoio/hugo/blob/145b3fcce35fbac25c7033c91c1b7ae6d1179da8/transform/urlreplacers/absurlreplacer.go#L72
window.index_js_url="/index.search.js";
var root_url="/";
var baseUri=root_url.replace(/\/$/, '');
// translations
window.T_Copy_to_clipboard = 'Copy to clipboard';
window.T_Copied_to_clipboard = 'Copied to clipboard!';
window.T_Copy_link_to_clipboard = 'Copy link to clipboard';
window.T_Link_copied_to_clipboard = 'Copied link to clipboard!';
window.T_No_results_found = 'No results found for \u0022{0}\u0022';
window.T_N_results_found = '{1} results found for \u0022{0}\u0022';
// some further base stuff
var baseUriFull='http:\/\/example.org/';
window.variants && variants.init( [ 'auto' ] );
</script>
</head>
<body class="mobile-support html" data-url="/config/command-lists/index.html">
<div id="body" class="default-animation">
<div id="sidebar-overlay"></div>
<div id="toc-overlay"></div>
<nav id="topbar" class="highlightable" dir="ltr">
<div>
<div id="breadcrumbs">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" class="topbar-link" title='Menu (CTRL+ALT+n)'><i class="fas fa-bars fa-fw"></i></a>
</span>
<span id="toc-menu" title='Table of Contents (CTRL+ALT+t)'><i class="fas fa-list-alt fa-fw"></i></span>
<span class="links">
Command Lists
</span>
</div>
<div class="default-animation progress">
<div class="toc-wrapper" dir="ltr">
<nav id="TableOfContents">
<ul>
<li>
<ul>
<li><a href="#order">Order</a></li>
<li><a href="#notifications">Notifications</a></li>
<li><a href="#name">Name</a></li>
<li><a href="#cron-mode">Cron mode</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
</div>
</nav>
<main id="body-inner" class="highlightable default" tabindex="-1">
<div class="flex-block-wrapper">
<div id="head-tags">
</div>
<article class="default">
<h1 id="command-lists">Command Lists</h1>
<p>Command lists are for executing commands in sequence and getting notifications from them.</p>
<p>The top-level object key can be anything you want.</p>
<table>
<thead>
<tr>
<th>key</th>
<th>description</th>
<th>type</th>
<th>required</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>order</code></td>
<td>Defines the sequence of commands to execute</td>
<td><code>[]string</code></td>
<td>yes</td>
</tr>
<tr>
<td><code>notifications</code></td>
<td>The notification IDs to use on success and failure</td>
<td><code>[]string</code></td>
<td>no</td>
</tr>
<tr>
<td><code>name</code></td>
<td>Optional name of the list</td>
<td><code>string</code></td>
<td>no</td>
</tr>
<tr>
<td><code>cron</code></td>
<td>Time at which to schedule the list.</td>
<td><code>string</code></td>
<td>no</td>
</tr>
</tbody>
</table>
<h3 id="order">Order</h3>
<p>The order is an array of commands to execute in order. Each command must be defined.</p>
<h3 id="notifications">Notifications</h3>
<p>An array of notification IDs to use on success and failure. Must match any of the <code>notifications</code> object map keys.</p>
<h3 id="name">Name</h3>
<p>Name is optional for logging. If name is not defined, name will be the object&rsquo;s map key.</p>
<h3 id="cron-mode">Cron mode</h3>
<p>Backy also has a cron mode, so one can run <code>backy cron</code> and start a process that schedules jobs to run at times defined in the configuration file.</p>
<p>Adding <code>cron: 0 0 1 * * *</code> to a <code>cmd-configs</code> object will schedule the list at 1 in the morning. See <a href="https://crontab.guru/" target="_blank">https://crontab.guru/</a> for reference.</p>
<div class="box notices cstyle tip">
<div class="box-label"><i class="fa-fw fas fa-lightbulb"></i> Tip</div>
<div class="box-content">
<p>Note: Backy uses the second field of cron, so add anything except * to the beginning of a regular cron expression.</p>
</div>
</div>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#f92672">cmd-configs</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">  cmds-to-run</span>: <span style="color:#75715e"># this can be any name you want</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">   </span> <span style="color:#75715e"># all commands have to be defined</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    order</span>:
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - stop-docker-container</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - backup-docker-container-script</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - shell-cmd</span>
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - hostname</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    notifications</span>:
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - matrix</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    name</span>: <span style="color:#ae81ff">backup-some-server</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    cron</span>: <span style="color:#e6db74">&#34;0 0 1 * * *&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">  hostname</span>:
</span></span><span style="display:flex;"><span><span style="color:#f92672">    name</span>: <span style="color:#ae81ff">hostname</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    order</span>:
</span></span><span style="display:flex;"><span><span style="color:#ae81ff">      - hostname</span>
</span></span><span style="display:flex;"><span><span style="color:#f92672">    notifications</span>:
</span></span><span style="display:flex;"><span> <span style="color:#ae81ff">    - prod-email</span>
</span></span></code></pre></div>
<footer class="footline">
</footer>
</article>
</div>
</main>
</div>
<aside id="sidebar" class="default-animation" dir="ltr">
<div id="header-wrapper" class="default-animation">
<div id="header" class="default-animation">
<style>
a#logo {
color: #282828;
color: var(--MENU-SECTIONS-BG-color);
font-family: 'Work Sans', 'Helvetica', 'Tahoma', 'Geneva', 'Arial', sans-serif;
font-size: 30px;
font-weight: 300;
margin-top: -13px;
text-transform: uppercase;
width: 256px;
white-space: nowrap;
}
a#logo:hover {
color: #282828;
color: var(--MENU-SECTIONS-BG-color);
}
#logo svg {
margin-bottom: -20px;
margin-left: -23.5px;
width: 40.5%;
}
@media only all and (max-width: 59.938em) {
a#logo {
font-size: 25px;
margin-top: -3px;
}
#logo svg {
margin-bottom: -12px;
margin-left: -23px;
}
}
@media all and (-ms-high-contrast:none) {
/* IE11s understanding of positioning is weird at best */
a#logo {
margin-top: -58px;
}
#logo svg {
margin-bottom: -62px;
}
}
</style>
<a id="logo" href="/index.html">
<svg version="1.1" id="_x36_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-51.2 -51.2 614.40 614.40" xml:space="preserve" width="128px" height="128px" fill="#ffffff" stroke="#ffffff" stroke-width="0.00512" transform="rotate(0)"><g id="SVGRepo_bgCarrier" stroke-width="0"><rect x="-51.2" y="-51.2" width="614.40" height="614.40" rx="0" fill="#000000" strokewidth="0"></rect></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <polygon style="fill:none;" points="275.211,140.527 360.241,140.527 380.083,120.685 275.211,120.685 "></polygon> <polygon style="fill:none;" points="232.234,268.534 219.714,281.054 232.234,281.054 "></polygon> <g> <g> <rect x="232.254" y="69.157" style="fill:#718176;" width="42.982" height="377.465"></rect> <polygon style="fill:#718176;" points="56.146,446.588 76.861,489.564 232.234,489.564 232.234,446.588 "></polygon> <polygon style="fill:#718176;" points="275.21,446.588 275.21,489.564 435.111,489.564 455.826,446.588 "></polygon> <rect x="232.234" y="446.588" style="fill:#979696;" width="42.977" height="42.977"></rect> <path style="fill:#718176;" d="M511.972,7.837v105.05c0,4.315-3.485,7.8-7.8,7.8H7.8c-4.315,0-7.8-3.485-7.8-7.8V7.837 c0-4.315,3.485-7.799,7.8-7.799h496.372C508.487,0.037,511.972,3.522,511.972,7.837z"></path> <path style="fill:#718176;" d="M511.972,148.318v105.05c0,4.315-3.485,7.883-7.8,7.883H7.8c-4.315,0-7.8-3.568-7.8-7.883v-105.05 c0-4.315,3.485-7.8,7.8-7.8h496.372C508.487,140.518,511.972,144.003,511.972,148.318z"></path> <path style="fill:#718176;" d="M511.972,288.882v105.05c0,4.315-3.485,7.799-7.8,7.799H7.8c-4.315,0-7.8-3.484-7.8-7.799v-105.05 c0-4.314,3.485-7.799,7.8-7.799h496.372C508.487,281.082,511.972,284.568,511.972,288.882z"></path> <path style="fill:#FFFFFF;" d="M492.427,6.264H19.545c-7.351,0-13.31,5.959-13.31,13.31v81.539 c0,7.351,5.959,13.309,13.31,13.309h472.882c7.351,0,13.31-5.959,13.31-13.309V19.573 C505.737,12.222,499.778,6.264,492.427,6.264z"></path> <path style="fill:#FFFFFF;" d="M492.427,146.79H19.545c-7.351,0-13.31,5.959-13.31,13.31v81.539c0,7.351,5.959,13.31,13.31,13.31 h472.882c7.351,0,13.31-5.959,13.31-13.31V160.1C505.737,152.749,499.778,146.79,492.427,146.79z"></path> <path style="fill:#FFFFFF;" d="M492.427,287.318H19.545c-7.351,0-13.31,5.959-13.31,13.31v81.539 c0,7.351,5.959,13.31,13.31,13.31h472.882c7.351,0,13.31-5.959,13.31-13.31v-81.539 C505.737,293.276,499.778,287.318,492.427,287.318z"></path> <g> <g> <path style="fill:#718176;" d="M57.355,26.558H43.829c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V28.674C59.471,27.505,58.524,26.558,57.355,26.558z"></path> <path style="fill:#718176;" d="M57.355,52.308H43.829c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V54.424C59.471,53.256,58.524,52.308,57.355,52.308z"></path> <path style="fill:#718176;" d="M57.355,78.059H43.829c-1.169,0-2.116,0.948-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V80.175C59.471,79.006,58.524,78.059,57.355,78.059z"></path> </g> <g> <path style="fill:#718176;" d="M89.021,26.558H75.495c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V28.674C91.137,27.505,90.19,26.558,89.021,26.558z"></path> <path style="fill:#718176;" d="M89.021,52.308H75.495c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V54.424C91.137,53.256,90.19,52.308,89.021,52.308z"></path> <path style="fill:#718176;" d="M89.021,78.059H75.495c-1.169,0-2.116,0.948-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.526c1.169,0,2.116-0.948,2.116-2.116V80.175C91.137,79.006,90.19,78.059,89.021,78.059z"></path> </g> <g> <path style="fill:#718176;" d="M120.687,26.558h-13.525c-1.169,0-2.116,0.947-2.116,2.116v13.548 c0,1.169,0.948,2.116,2.116,2.116h13.525c1.169,0,2.116-0.948,2.116-2.116V28.674 C122.804,27.505,121.856,26.558,120.68
Backy
</a>
</div>
<div class="searchbox default-animation">
<i class="fas fa-search" title="Search (CTRL+ALT+f)"></i>
<label class="a11y-only" for="search-by">Search</label>
<input data-search-input id="search-by" name="search-by" class="search-by" type="search" placeholder="Search...">
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
<script>
var contentLangs=['en'];
</script>
<script src="/js/auto-complete.js?1676866111" defer></script>
<script src="/js/lunr/lunr.min.js?1676866111" defer></script>
<script src="/js/lunr/lunr.stemmer.support.min.js?1676866111" defer></script>
<script src="/js/lunr/lunr.multi.min.js?1676866111" defer></script>
<script src="/js/lunr/lunr.en.min.js?1676866111" defer></script>
<script src="/js/search.js?1676866111" defer></script>
</div>
<div id="content-wrapper" class="highlightable">
<ul class="topics collapsible-menu">
<li data-nav-id="/getting-started/index.html" class="dd-item"><input type="checkbox" id="section-c727fab97b4d77e5b28ce8c448fb9000" aria-controls="subsections-c727fab97b4d77e5b28ce8c448fb9000" class="toggle"><label class="a11y-only toggle" for="section-c727fab97b4d77e5b28ce8c448fb9000" >Submenu Getting started</label><a href="/getting-started/index.html">Getting started</a><ul id="subsections-c727fab97b4d77e5b28ce8c448fb9000">
<li data-nav-id="/getting-started/install/index.html" class="dd-item"><a href="/getting-started/install/index.html">Install Backy</a></li>
<li data-nav-id="/getting-started/config/index.html" class="dd-item"><a href="/getting-started/config/index.html">Config File Definitions</a></li></ul></li>
<li data-nav-id="/config/index.html" class="dd-item parent"><input type="checkbox" id="section-98a8c13bcd8ebb34cfcbafd00ee6590b" aria-controls="subsections-98a8c13bcd8ebb34cfcbafd00ee6590b" class="toggle" checked><label class="a11y-only toggle" for="section-98a8c13bcd8ebb34cfcbafd00ee6590b" >Submenu Configuring Backy</label><a href="/config/index.html">Configuring Backy</a><ul id="subsections-98a8c13bcd8ebb34cfcbafd00ee6590b">
<li data-nav-id="/config/command-lists/index.html" class="dd-item active"><a href="/config/command-lists/index.html">Command Lists</a></li>
<li data-nav-id="/config/commands/index.html" class="dd-item"><a href="/config/commands/index.html">Commands</a></li>
<li data-nav-id="/config/notifications/index.html" class="dd-item"><a href="/config/notifications/index.html">Notifications</a></li></ul></li>
<li data-nav-id="/cli/index.html" class="dd-item"><a href="/cli/index.html">CLI</a></li>
<li data-nav-id="/repositories/index.html" class="dd-item"><a href="/repositories/index.html">Repositories</a></li>
</ul>
<div class="footermargin footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showFooter"></div>
<hr class="default-animation footerLangSwitch footerVariantSwitch footerVisitedLinks footerFooter showFooter">
<div id="prefooter" class="footerLangSwitch footerVariantSwitch footerVisitedLinks">
<ul>
<li id="select-language-container" class="footerLangSwitch">
<div class="padding select-container">
<i class="fas fa-language fa-fw"></i>
<span>&nbsp;</span>
<div class="select-style">
<label class="a11y-only" for="select-language">Language</label>
<select id="select-language" onchange="location = baseUri + this.value;">
</select>
</div>
<div class="select-clear"></div>
</div>
</li>
<li id="select-variant-container" class="footerVariantSwitch">
<div class="padding select-container">
<i class="fas fa-paint-brush fa-fw"></i>
<span>&nbsp;</span>
<div class="select-style">
<label class="a11y-only" for="select-variant">Theme</label>
<select id="select-variant" onchange="window.variants && variants.changeVariant( this.value );">
<option id="auto" value="auto" selected>Auto</option>
</select>
</div>
<div class="select-clear"></div>
</div>
<script>window.variants && variants.markSelectedVariant();</script>
</li>
<li class="footerVisitedLinks"><button class="padding" onclick="clearHistory();"><i class="fas fa-history fa-fw"></i> Clear History</button></li>
</ul>
</div>
<div id="footer" class="footerFooter showFooter">
<p>Built with <a href="https://github.com/McShelby/hugo-theme-relearn" title="love"><i class="fas fa-heart"></i></a> by <a href="https://gohugo.io/">Hugo</a></p>
</div>
</div>
</aside>
<script src="/js/clipboard.min.js?1676866111" defer></script>
<script src="/js/perfect-scrollbar.min.js?1676866111" defer></script>
<script>
function useMathJax( config ){
if( !Object.assign ){
return;
}
window.MathJax = Object.assign( window.MathJax || {}, {
loader: {
load: ['[tex]/mhchem']
},
startup: {
elements: [
'.math'
]
},
tex: {
inlineMath: [
['$', '$'],
['\\(', '\\)']
]
},
options: {
enableMenu: false
}
}, config );
}
useMathJax( JSON.parse("{}") );
</script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script src="/js/d3/d3-color.min.js?1676866111" defer></script>
<script src="/js/d3/d3-dispatch.min.js?1676866111" defer></script>
<script src="/js/d3/d3-drag.min.js?1676866111" defer></script>
<script src="/js/d3/d3-ease.min.js?1676866111" defer></script>
<script src="/js/d3/d3-interpolate.min.js?1676866111" defer></script>
<script src="/js/d3/d3-selection.min.js?1676866111" defer></script>
<script src="/js/d3/d3-timer.min.js?1676866111" defer></script>
<script src="/js/d3/d3-transition.min.js?1676866111" defer></script>
<script src="/js/d3/d3-zoom.min.js?1676866111" defer></script>
<script src="https://unpkg.com/mermaid/dist/mermaid.min.js" defer></script>
<script>
window.themeUseMermaid = JSON.parse("{ \"theme\": \"default\" }");
</script>
<script src="https://unpkg.com/rapidoc/dist/rapidoc-min.js" defer></script>
<script>
window.themeUseSwagger = JSON.parse("{ \"theme\": \"light\" }");
</script>
<script src="/js/theme.js?1676866111" defer></script>
</body>
</html>