ro 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. export LANG=zh_CN.utf8
  2. export LC_ALL=zh_CN.utf8
  3. #改变工作目录到当前脚本所在路径
  4. if [[ "$0" =~ / ]]; then cd "${0%/*}"; fi
  5. mkdir -p "/opt/matrix/logs"
  6. if [[ "$#" == "0" ]]; then
  7. echo "
  8. usage:
  9. #执行本地命令
  10. ro action=local cmds=<命令>
  11. #执行远程命令
  12. ro action=remote host=<IP或可解析的hostname> username=<用户> password=<密码> cmds=<命令>
  13. #从远程下载文件
  14. ro action=fget host=<IP或可解析的hostname> username=<用户> password=<密码> local=<本地文件路径> remote=<远程文件路径>
  15. #上传文件到远程
  16. ro action=fput host=<IP或可解析的hostname> username=<用户> password=<密码> local=<本地文件路径> remote=<远程文件路径>
  17. #Base64编码
  18. ro b64
  19. 注意事项:
  20. 命令:命令尽量使用单引号包括
  21. 密码:需要BASE64编码,如果使用明文密码,那么需要在密码前增加一个等于号并使用单引号包括,例如:
  22. ro action=remote host=127.0.0.1 username=root password='=123456' cmds='pwd;ls'
  23. Base64编码可以通过执行 ro b64 命令,输入明文,转换后得到
  24. "
  25. export ret=1
  26. elif [[ "$1" = "b64" ]]; then
  27. echo -n 输入:
  28. python -c "
  29. import base64;
  30. import sys;
  31. s = sys.stdin.readline().strip()
  32. try:
  33. if s[0] == '=':
  34. print(s[1:])
  35. else:
  36. if sys.version_info.major == 3:
  37. s = bytes(s, encoding='utf8')
  38. s = base64.b64encode(s)
  39. if sys.version_info.major == 3:
  40. s = str(s, encoding='utf8')
  41. print(s)
  42. except TypeError as e:
  43. #print(e)
  44. print(s)
  45. "
  46. export ret=$?
  47. else
  48. python ro.py TRACE=SIPR logdir="/opt/matrix/logs" "$@"
  49. export ret=$?
  50. fi
  51. exit $ret
  52. #见见之时 见非是见 见犹离见 见不能及