小编Fro*_*man的帖子

Ansible - 检查文件中是否存在字符串

我对Ansible很新

是否可以使用Ansible检查文件中是否存在字符串.

我想检查用户是否有权访问服务器.这可以在服务器上使用cat /etc/passwd | grep username

但如果用户不在,我希望Ansible停止.

我试图使用lineinfile但似乎无法让它返回.

 - name: find
   lineinfile: dest=/etc/passwd
               regexp=[user]
               state=present
               line="user"
Run Code Online (Sandbox Code Playgroud)

如果他不在那里,上面的代码会将用户添加到文件中.我想做的就是检查.我不想以任何方式修改文件,这是可能的

谢谢.

ansible ansible-2.x

10
推荐指数
3
解决办法
4万
查看次数

Perl:将文件从一个位置复制到另一个位置

这只是一个小脚本,我正在运行以连续循环来检查目录并移动那里的每个文件.此代码有效,我在后台进程中运行它.但由于某种原因,我收到以下错误:'/home/srvc_ibdcoe_pcdev/Niall_Test/new_dir/..' and '/home/srvc_ibdcoe_pcdev/Niall_Test/perl_files/..' are identical (not copied) at move2.pl line 27

任何想法为什么它告诉我它是相同的,即使路径不同?

非常感谢

脚本如下

#!/usr/bin/perl
use diagnostics;
use strict;
use warnings;

use File::Copy;

my $poll_cycle = 10;
my $dest_dir = "/home/srvc_ibdcoe_pcdev/Niall_Test/perl_files";

while (1) {
    sleep $poll_cycle;

    my $dirname = '/home/srvc_ibdcoe_pcdev/Niall_Test/new_dir';

    opendir my $dh, $dirname
        or die "Can't open directory '$dirname' for reading: $!";

    my @files = readdir $dh;
    closedir $dh;

    if ( grep( !/^[.][.]?$/, @files ) > 0 ) {
        print "Dir is not empty\n";

        foreach my $target (@files) …
Run Code Online (Sandbox Code Playgroud)

perl move

5
推荐指数
1
解决办法
920
查看次数

将时间戳插入Hive

嗨,我是Hive的新手,我想将当前时间戳和一行数据一起插入到我的表中.

这是我的团队表的一个例子:

team_id int
fname   string
lname   string
time    timestamp
Run Code Online (Sandbox Code Playgroud)

我看了一些其他的例子,如何将时间戳插入Hive表?,我如何在配置单元中添加时间戳列,似乎无法使其工作.这就是我想要的:

insert into team values('101','jim','joe',from_unixtime(unix_timestamp()));
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

FAILED: SemanticException [Error 10293]: Unable to create temp file for insert values Expression of type TOK_FUNCTION not supported in insert/values
Run Code Online (Sandbox Code Playgroud)

如果有人能提供帮助,那就太棒了,非常感谢霜冻

hadoop hive apache-hive

5
推荐指数
1
解决办法
1万
查看次数

Ansible 成为密码

我有一个小而简单的剧本,可以在另外两台服务器上创建一个目录,我将其保存在清单文件中并传递名称“dev-edge”。

当我尝试运行它时,我得到:

a2s3421.fake.cor.com : ok=0    changed=0    unreachable=1    failed=0
a1s3433.fake.cor.com : ok=0    changed=0    unreachable=1    failed=0
Run Code Online (Sandbox Code Playgroud)

我可以'ssh niall@g4t7459.houston.hpecorp.net'这样可以从 ansible 服务器访问服务器。

我认为这是因为我没有传递密码,我尝试使用“become_pass: XXXXX”但仍然不起作用。

有人可以告诉我如何在剧本中添加/请求密码吗?或者是否有其他原因导致我在运行剧本时收到无法访问的错误?

感谢弗罗斯蒂的帮助。

“剧本”


- hosts: dev-edge
  remote_user: "{{ user }}"

  tasks:

    - name: create directories
      become: yes
      become_user: niall
      command: mkdir /opt/apps/niall_test
Run Code Online (Sandbox Code Playgroud)

ansible

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

ansible ×2

ansible-2.x ×1

apache-hive ×1

hadoop ×1

hive ×1

move ×1

perl ×1