File: command-line.asciidoc

package info (click to toggle)
elasticsearch-curator 4.2.5-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,288 kB
  • ctags: 1,146
  • sloc: python: 10,605; sh: 332; makefile: 163
file content (252 lines) | stat: -rw-r--r-- 8,520 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
[[cli]]
= Running Curator

[partintro]
--
* <<command-line,Command Line Interface>>
* <<singleton-cli,Singleton Command Line Interface>>
* <<exit-codes,Exit Codes>>
--

[[command-line]]
== Command Line Interface

The command-line arguments are as follows:

[source,sh]
-------
curator [--config CONFIG.YML] [--dry-run] ACTION_FILE.YML
-------

The square braces indicate optional elements.

If `--config` and `CONFIG.YML` are not provided, Curator will look in
`~/.curator/curator.yml` for the configuration file.  `~` is the home directory
of the user executing Curator. In a Unix system, this might be
`/home/username/.curator/curator.yml`, while on a Windows system, it might be
`C:\Users\username\.curator\curator.yml`

If `--dry-run` is included, Curator will simulate the action(s) in
ACTION_FILE.YML as closely as possible without actually making any changes.  The
results will be in the logfile, or STDOUT/command-line if no logfile is
specified.

`ACTION_FILE.YML` is a YAML <<actionfile, actionfile>>.

Command-line help is never far away:

[source,sh]
-------
curator --help
-------

The help output looks like this:

[source,sh]
-------
$ curator --help
Usage: curator [OPTIONS] ACTION_FILE

  Curator for Elasticsearch indices.

  See http://elastic.co/guide/en/elasticsearch/client/curator/current

Options:
  --config PATH  Path to configuration file. Default: ~/.curator/curator.yml
  --dry-run      Do not perform any changes.
  --version      Show the version and exit.
  --help         Show this message and exit.
-------

Starting in Curator 4.1, you can use <<envvars,environment variables>> in your
configuration files.

TIP: See <<faq_unicode,this FAQ about Python 3 requiring a Unicode locale>>

&nbsp;

[[singleton-cli]]
== Singleton Command Line Interface

Starting in Curator 4.2, a partial restoration of the command-line from the 3.x
version is back as the `curator_cli` command.  This allows users to run a
single, supported action from the command-line, without needing either the
client or action YAML configuration file, though it does support using the
client configuration file if you want.  As an important bonus, the command-line
options allow you to override the settings in the `curator.yml` file!

[source,sh]
---------
$ curator_cli --help
Usage: curator_cli [OPTIONS] COMMAND [ARGS]...

Options:
  --config PATH       Path to configuration file. Default:
                      ~/.curator/curator.yml
  --host TEXT         Elasticsearch host.
  --url_prefix TEXT   Elasticsearch http url prefix.
  --port TEXT         Elasticsearch port.
  --use_ssl           Connect to Elasticsearch through SSL.
  --certificate TEXT  Path to certificate to use for SSL validation.
  --client-cert TEXT  Path to file containing SSL certificate for client auth.
  --client-key TEXT   Path to file containing SSL key for client auth.
  --ssl-no-validate   Do not validate SSL certificate
  --http_auth TEXT    Use Basic Authentication ex: user:pass
  --timeout INTEGER   Connection timeout in seconds.
  --master-only       Only operate on elected master node.
  --dry-run           Do not perform any changes.
  --loglevel TEXT     Log level
  --logfile TEXT      log file
  --logformat TEXT    Log output format [default|logstash|json].
  --version           Show the version and exit.
  --help              Show this message and exit.

Commands:
  allocation        Shard Routing Allocation
  close             Close indices
  delete_indices    Delete indices
  delete_snapshots  Delete snapshots
  forcemerge        forceMerge index/shard segments
  open              Open indices
  replicas          Change replica count
  show_indices      Show indices
  show_snapshots    Show snapshots
  snapshot          Snapshot indices
---------

The option flags for the given commands match those used for the same
<<actions,actions>>.  The only difference is how filtering is handled.

TIP: See <<faq_unicode,this FAQ about Python 3 requiring a Unicode locale>>

=== Command-line filtering

Recent improvements in Curator include schema and setting validation.  With
these improvements, it is possible to validate filters and their many
permutations if passed in a way that Curator can easily digest.

[source,sh]
-----------
--filter_list TEXT  JSON string representing an array of filters.
-----------

This means that filters need to be passed as a single object, or an array of
objects in JSON format.

Single:
[source,sh]
-----------
--filter_list '{"filtertype":"none"}'
-----------

Multiple:
[source,sh]
-----------
--filter_list '[{"filtertype":"age","source":"creation_date","direction":"older","unit":"days","unit_count":13},{"filtertype":"pattern","kind":"prefix","value":"logstash"}]'
-----------

This preserves the power of chained filters, making them available on the
command line.

NOTE: You may need to escape all of the double quotes on some platforms, or
  shells like PowerShell, for instance.

Caveats to this approach:

1. Only one action can be taken at a time.
2. You must still specify a <<filtertype_none,none>> filter if you want to act +
  on all indices or snapshots.
3. Not all actions have singleton analogs.  <<alias,Alias>> and +
  <<restore,Restore>> do not have singleton actions.

=== Show Indices/Snapshots

One feature that the singleton command offers that the other cannot is to show
which indices and snapshots are in the system.  It's a great way to visually
test your filters without causing any harm to the system.

[source,sh]
-----------
$ curator_cli show_indices --help
Usage: curator_cli show_indices [OPTIONS]

  Show indices

Options:
  --verbose           Show verbose output.
  --header            Print header if --verbose
  --epoch             Print time as epoch if --verbose
  --filter_list TEXT  JSON string representing an array of filters.
                      [required]
  --help              Show this message and exit.
-----------

[source,sh]
-----------
$ curator_cli show_snapshots --help
Usage: curator_cli show_snapshots [OPTIONS]

  Show snapshots

Options:
  --repository TEXT   Snapshot repository name  [required]
  --filter_list TEXT  JSON string representing an array of filters.
                      [required]
  --help              Show this message and exit.
-----------

The `show_snapshots` command will only show snapshots matching the provided
filters.  The `show_indices` command will also do this, but also offers a few
extra features.

* `--verbose` adds state, total size of primary and all replicas, the document
  count, the number of primary and replica shards, and the creation date in
  ISO8601 format.
* `--header` adds a header that shows the column names.  This only occurs if
  `--verbose` is also selected.
* `--epoch` changes the date format from ISO8601 to epoch time.  If `--header`
  is also selected, the column header title will change to `creation_date`

There are no extra columns or `--verbose` output for the `show_snapshots`
command.

Without `--epoch`
[source,sh]
-----------
Index               State     Size     Docs Pri Rep   Creation Timestamp
logstash-2016.10.20 close     0.0B        0   5   1 2016-10-20T00:00:03Z
logstash-2016.10.21  open  763.3MB  5860016   5   1 2016-10-21T00:00:03Z
logstash-2016.10.22  open  759.1MB  5858450   5   1 2016-10-22T00:00:04Z
logstash-2016.10.23  open  757.8MB  5857456   5   1 2016-10-23T00:00:04Z
logstash-2016.10.24  open  771.5MB  5859720   5   1 2016-10-24T00:00:00Z
logstash-2016.10.25  open  771.0MB  5860112   5   1 2016-10-25T00:00:01Z
logstash-2016.10.27  open  658.3MB  4872830   5   1 2016-10-27T00:00:03Z
logstash-2016.10.28  open  655.1MB  5237250   5   1 2016-10-28T00:00:00Z
-----------

With `--epoch`
[source,sh]
-----------
Index               State     Size     Docs Pri Rep creation_date
logstash-2016.10.20 close     0.0B        0   5   1    1476921603
logstash-2016.10.21  open  763.3MB  5860016   5   1    1477008003
logstash-2016.10.22  open  759.1MB  5858450   5   1    1477094404
logstash-2016.10.23  open  757.8MB  5857456   5   1    1477180804
logstash-2016.10.24  open  771.5MB  5859720   5   1    1477267200
logstash-2016.10.25  open  771.0MB  5860112   5   1    1477353601
logstash-2016.10.27  open  658.3MB  4872830   5   1    1477526403
logstash-2016.10.28  open  655.1MB  5237250   5   1    1477612800
-----------

&nbsp;

[[exit-codes]]
== Exit Codes

Exit codes will indicate success or failure.

* `0` — Success
* `1` — Failure
* `-1` - Exception raised that does not result in a `1` exit code.

&nbsp;