軟件即服務,開發即客服,今天自動化平臺用到一個用戶問題,用戶反饋通過自動化平臺執行任務成功。但是腳本未達到預期效果。
簡單來說,下發了自動化任務 x.sh,x.sh做了如下動作:
su -aa
sh /data01/…/B.sh
因爲執行引擎是兩個人開發,雖然主攻java,但是用戶的各種問題操作問題還是要解決。
於是讓用戶改爲了 su -aa -c “sh /data01/…/B.sh”
查詢下資料做下歸檔:
1.命令作用
su的作用是變更爲其它使用者的身份,超級用戶除外,需要鍵入該使用者的密碼。
2.使用方式
su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]
3.參數說明
-
-f , –fast:不必讀啓動文件(如 csh.cshrc 等),僅用於csh或tcsh兩種Shell。
-
-l , –login:加了這個參數之後,就好像是重新登陸一樣,大部分環境變量(例如HOME、SHELL和USER等)都是以該使用者(USER)爲主,並
且工作目錄也會改變。如果沒有指定USER,缺省情況是root。
-
-m, -p ,–preserve-environment:執行su時不改變環境變數。
-
-c command:變更賬號爲USER的使用者,並執行指令(command)後再變回原來使用者。
-
–help 顯示說明文件
-
–version 顯示版本資訊
-
USER:欲變更的使用者賬號,
-
ARG: 傳入新的Shell參數。
4.例子
su -c ls root 變更帳號爲 root 並在執行 ls 指令後退出變回原使用者。
su [用戶名]
a>在root用戶下, 輸入 su 普通用戶. 則切換至普通用戶, 從root切換到變通用戶不需要密碼
b>在普通用戶下, 輸入 su [用戶名]
提示 password:
輸入用戶的PASSWORD, 則切換至該用戶
5、Linux下 su命令與su - 命令有什麼區別?
su 是切換到其他用戶,但是不切換環境變量(比如說那些export命令查看一下,就知道兩個命令的區別了)
su - 是完整的切換到一個用戶環境
所以建議大家切換用戶的時候,儘量使用 su - linuxso 這樣 否則可能發現某些命令執行不了
6、自動化執行引擎使用案例
- 安裝插件
- 切換oracle 賬號自動執行sql
- 調用外部腳本執行一些命令