exec 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. parser.add_option("--noexit",
  23. action='store_true')
  24. (options, args) = parser.parse_args()
  25. print("option",options)
  26. #print( dir(parser))
  27. if options.id is None:
  28. print("please set network-namespace --id=xx")
  29. sys.exit()
  30. if options.cmd is None:
  31. print("exec: please set --cmd=xxxx")
  32. sys.exit()
  33. cmd="sudo /opt/netns/_exec --id=\"{id}\" --user=\"{user}\" --cmd=\"{cmd}\" " # ok
  34. print(cmd)
  35. cmd2=cmd.format(user=username,id=options.id,cmd=options.cmd)
  36. print(cmd2)
  37. os.system(cmd2)
  38. if options.noexit:
  39. pass
  40. else:
  41. os.system("reset")
  42. os.system("echo 'reset ok'")