Существует множество методов, вот некоторые:
sudo
по специальному -способу. Это могут использовать администраторы (, имеющие полные sudo
привилегии ). /etc/sudoers
, чтобы разрешить выполнение определенных сценариев какsudo
(без пароля или любым пользователем ). authbind
. go
, довольно хорош, так как прост -в использовании. exec
создать новый процесс для запуска скрипта. К сожалению, я не знаком с ansible
, но, поскольку кажется, что ansible
присутствует в смеси, и проблема в том, что другой процесс переводит команду таким образом, что нарушает цитирование, возможно, исключая цитирование в этом часть команды может помочь.
Возможно, стоит попробовать базовую команду вроде этой:
ls -ltr /tmp/*.pid | grep "$(date +%b\ %e)"
Остается вопрос, может ли переводчик нарушить и это.
Не знаю насчет Ansible, но вот рабочая команда ssh:
ssh user@10.0.0.9 'touch /tmp/test.pid; ls -ld /tmp/*.pid | grep -- "$(date "+%b %d")"'
Обратите внимание, :даже если на вашем сервере AIX -установлено GNU!binutils
, команды, выполняемые через ssh, используют минимальный путь PATH, который не включает /opt/freeware/bin
или /usr/local/bin
, поэтому используйте полный -путь, если вы хотите использоватьGNU!ls
:
ssh user@10.0.0.9 'touch /tmp/test.pid; /usr/local/bin/ls -ld /tmp/*.pid | grep -- "$(date "+%b %e")"'
Редактировать :Относительно date
% -последовательностей:AIX!ls
совместимо с %d
, GNU!ls с %e
.