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块。