Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在shell中执行ssh时更改文件权限_Linux_Bash_Shell_Ssh - Fatal编程技术网

Linux 如何在shell中执行ssh时更改文件权限

Linux 如何在shell中执行ssh时更改文件权限,linux,bash,shell,ssh,Linux,Bash,Shell,Ssh,我正在使用以下代码更改某些文件权限: encrypt=`sed -n '/:/,$p' $FILE_PATH_1 | cut -d':' -f2 | tr -d ' '` local listOfPasswordChangeWS=`$SMANAGER_SCRIPT status service PasswordChangeWS | cut -f 2 -d ":"` for node in $listOfPasswordChangeWS ; do ssh -q $i "cp /opt/

我正在使用以下代码更改某些文件权限:

encrypt=`sed -n '/:/,$p' $FILE_PATH_1 | cut -d':' -f2 | tr -d ' '`    
local listOfPasswordChangeWS=`$SMANAGER_SCRIPT status service PasswordChangeWS | cut -f 2 -d ":"`
for node in $listOfPasswordChangeWS ; do
  ssh -q $i "cp /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties.original"
  ssh -q $i "sed -i '/Password/c\com.ibm.CORBA.loginPassword=ENC($encrypt)' /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties "
  **ssh -q $i "chown -c omc:sysop /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties ; chmod 640 /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties"**
 # INCR=$?
  INCR=$?
  if [ "INCR" == "0" ] ; then
  NewIncr++
  fi
done
我想检查退出状态,但由于它处于for循环中,我无法获得值0或1,而是返回值255。我的问题是: 1.如何检查chown-c命令的退出状态(记住我在做ssh) 2.如何检查我的文件权限是否已更改为omc:sysop

请尝试以下操作:

if ssh $HOST 'chown -c omc:sysop /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties ; chmod 640 /opt/oss/NSN-mf_swp/smx/mf-conf/was-cred.properties' < /dev/null
   if [ $? -eq 0 ]; then
     echo SUCCESS
   else
      echo FAIL
fi
如果ssh$HOST'chown-comc:sysop/opt/oss/NSN-mf_swp/smx/mf conf/was-cred.properties;chmod 640/opt/oss/NSN-mf_swp/smx/mf conf/was cred.properties'
签出或签出。您的两个
if
语句是多余的。当ssh命令成功退出时,外部
if
仅执行内部
if
。因此,内部if将只执行SUCCESS块。