我想使用Ansible按日期将所有文件(名称中包含日期)存储在同一文件夹中的同一文件中。
让我解释一下:
文件可以是以下类型: (注意日期可以用短划线或下划线分隔)
<?php
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM $wpdb->users" );
?>
<form method="post">
<table>
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Nobility</th>
<th>Select Nobility</th>
<th>Submit</th>
</tr>
<?php
foreach ($results as $key ) {
echo "<tr>";
foreach ($key as $row=>$value ) {
if ($row == "ID" ) {
echo "<td>$value</td>";
}elseif ($row == "display_name") {
echo "<td>$value</td>";
}elseif ($row == "mg_nobility") {
echo "<td>$value</td>
<td>
<select name='nobility_value'>
<option value='nobilityOne'>nobility One</option>
<option value='nobilityTwo'>nobility Two</option>
<option value='nobilityThree'>nobility Three</option>
<option value='nobilityFour'>nobility Four</option>
</select>
</td>
<td><button type='submit' name='submit'>Submit</button></td>";
}
}
echo "</tr>";
}?>
</form>
<?php
if(isset($_POST["submit"])){
$nobility = $_POST['nobility_value'];
# wordpress query....
}
?>
我想要包含ansible的归档文件,其中包含这样的日期:
array(6) {
[0]=> object(stdClass)#3359 (11) {
["ID"]=> string(1) "1"
["user_login"]=> string(9) "Daniel"
["user_pass"]=> string(34)"$P$Bph9BrPkxjPzgAGhjv0"
["user_nicename"]=> string(9) "daniel"
["user_email"]=> string(14) "declst@gmail"
["user_url"]=> string(0) ...........etc...}
}
[1]=> object(stdClass)#3360 (11) {
["ID"]=> string(1) "6"
["user_login"]=> string(9) "dwa3"
["user_pass"]=> string(34) "$P$Bi9upVUk.dxZ7wkK83mbcU."
.......etc.....}
目前我搜索文件:
/app/logs/app.log
/app/logs/app.log.2018-12-04
/app/logs/app.log.2018-12-05
/app/logs/batch.log
/app/logs/batch.log.2018-12-04
/app/logs/batch.log.2018-12-05
/app/logs/web.log
/app/logs/web.log.2018_12_04
/app/logs/web.log.2018_12_05
我尝试建立新词典:
/app/logs/20181204.tar.gz
/app/logs/20181205.tar.gz
存档我的文件,但是我的var文件仅包含一个文件
- name: Search files
find:
paths: "/app/logs/"
register: files
感谢您的帮助
答案 0 :(得分:0)
存档我的文件,但是我的var文件仅包含一个文件
那是因为要将变量file
设置为单个值:
- set_fact:
file:
- "name": "{{ item.path | basename | regex_replace( '[A-Z-_.a-z]' , '') }}"
"path": [ "{{ item.path }}" ]
loop: "{{ files.files }}"
when: item.path | basename | regex_replace( '[A-Z-_.a-z]' , '') != ''
仅将set_fact
置于循环中并不会改变以下事实:
将file
设置为单个值{{ item.path | basename | regex_replace( '[A-Z-_.a-z]' , '') }}
。
如果要将set_fact
任务的结果作为列表,则需要
建立清单。这样的事情可能会起作用:
- set_fact:
files_list: "{{
(files_list|default([])) +
[{
'name': item.path | basename | regex_replace( '[A-Z-_.a-z]' , ''),
'path': item.path
}]
}}"
loop: "{{ files.files }}"
when: item.path | basename | regex_replace( '[A-Z-_.a-z]' , '') != ''
这将通过附加一个创建files_list
列表变量
loop
的每次迭代都需要字典。
答案 1 :(得分:0)
最后,我只需要第二个列表files_list
return True
感谢Larsks,第二个列表是您的:)