exec 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/env python3
  2. #echo "name green_$1 command $2"
  3. #CMD="su user -c 'screen -d -m -S "'"'"$1"'"'" "'"'"$2"'"'"' "
  4. #echo "cmd: $CMD"
  5. #CMD2="sudo ip netns exec "'"'"green_$1"'"'" $CMD"
  6. #echo "cmd: $CMD2"
  7. import os
  8. import sys
  9. import pwd
  10. #username = os.getlogin( )
  11. username = pwd.getpwuid(os.getuid())[0]
  12. print([username])
  13. if username == "root":
  14. print( "do not execute this programm with root or sudo")
  15. sys.exit()
  16. from optparse import OptionParser
  17. parser = OptionParser()
  18. parser.add_option("--id", dest="id",
  19. help="set netns id = ip")
  20. parser.add_option("--cmd", dest="cmd",
  21. help="cmd to execute in network-namespace")
  22. (options, args) = parser.parse_args()
  23. print("option",options)
  24. #print( dir(parser))
  25. if options.id is None:
  26. print("please set network-namespace --id=xx")
  27. sys.exit()
  28. if options.cmd is None:
  29. print("exec: please set --cmd=xxxx")
  30. sys.exit()
  31. cmd="sudo /opt/netns/_exec --id=\"{id}\" --user=\"{user}\" --cmd=\"{cmd}\" " # ok
  32. print(cmd)
  33. cmd2=cmd.format(user=username,id=options.id,cmd=options.cmd)
  34. print(cmd2)
  35. os.system(cmd2)
  36. os.system("reset")
  37. os.system("echo 'reset ok'")