Python Forum
OS command via python subprocess module
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
OS command via python subprocess module
#19
Yes. It is now working. The issue was with chdir outside for loop

How can I combine both for loops into one so that I should have only one list variable instead of two(patch1 and patch2)? The reason I used two list variables is because patches of patch1 are inside /u02/28317232 and patches of patch2 are inside /u02/ after unzipping

#!/usr/local/bin/python3.6
import subprocess
from plumbum import local, cmd

patch1 = [27923320,27547329]
patch2 = [21171382,21463894,18961555,28432129]


ORACLE_HOME = local.env['ORACLE_HOME']
path = local.env['PATH']
local.env['PATH'] = "{ohome}/bin:{ohome}/OPatch:{path}".format(ohome=ORACLE_HOME, path=local.env['PATH'])

osTyp = cmd.uname('-s').strip()

print('Applying PSU patches')
for j in patch1:
    if osTyp == 'Linux':
        local.cwd.chdir('/u02/')
        cmd.unzip('-o', "/u02/p28317232*.zip".format(j))
        local.cwd.chdir('/u02/28317232/{}'.format(j))
        subprocess.run('opatch apply -silent', shell=True)
        print('Patch',j, 'applied')

    elif osTyp == 'SunOs':
        cmd.unzip("p{}_121020_Solaris-x86-64.zip".format(j))
    else:
        print("!!\n!! unable to determine OS type !!\n!!")

print('Applying one-off patches')
for i in patch2:
    if osTyp == 'Linux':
        local.cwd.chdir('/u02/')
        cmd.unzip('-o', "/u02/p{}_*.zip".format(i))
        local.cwd.chdir('/u02/{}'.format(i))
        subprocess.run('opatch apply -silent', shell=True)
        print('Patch',i, 'applied')

    elif osTyp == 'SunOs':
        cmd.unzip("p{}_121020_Solaris-x86-64.zip".format(i))
    else:
        print("!!\n!! unable to determine OS type !!\n!!")
Contents of /u02
[oracle@cdb1 u02]$ pwd
/u02
[oracle@cdb1 u02]$ ls -ltr
total 789832
drwxrwxr-x.  4 oracle oinstall      4096 Aug  6  2015 21463894
drwxrwxr-x.  4 oracle oinstall      4096 Apr 25 15:18 18961555
drwxrwxr-x.  4 oracle oinstall      4096 Jun 27 10:48 21171382
drwxrwxr-x.  4 oracle oinstall      4096 Aug  7 18:32 28432129
-rw-rw-r--.  1 oracle oinstall      4596 Aug  8 07:01 PatchSearch.xml
-rwxrwx---.  1 oracle oinstall     30301 Oct 17 20:59 p18961555_12102180417_Linux-x86-64.zip
-rwxrwx---.  1 oracle oinstall    212238 Oct 17 21:00 p28432129_12102180717_Linux-x86-64.zip
-rwxrwx---.  1 oracle oinstall 807969208 Oct 17 21:01 p28317232_121020_Linux-x86-64.zip
-rwxrwx---.  1 oracle oinstall    451814 Oct 17 21:01 p21171382_12102180417_Generic.zip
-rwxrwx---.  1 oracle oinstall     73502 Oct 17 21:10 p21463894_121020_Linux-x86-64.zip
drwxr-xr-x. 10 oracle oinstall      4096 Oct 18 08:52 pycharm-community-2018.2.4
drwxr-xr-x.  3 oracle oinstall      4096 Oct 18 09:23 scripts
drwxr-xr-x.  4 oracle oinstall      4096 Oct 21 09:11 28317232
[oracle@cdb1 u02]$ 

[oracle@cdb1 u02]$ cd 28317232
[oracle@cdb1 28317232]$ pwd
/u02/28317232
[oracle@cdb1 28317232]$ ls -ltr
total 40
-rw-r--r--.  1 oracle oinstall    21 Jul 10 18:59 README.txt
-rw-rw-r--.  1 oracle oinstall 24710 Jul 12 07:27 README.html
drwxr-xr-x. 18 oracle oinstall  4096 Oct 21 09:11 27547329
drwxr-xr-x.  4 oracle oinstall  4096 Oct 21 09:11 27923320
Reply


Messages In This Thread
RE: OS command via python subprocess module - by alinaveed786 - Oct-21-2018, 03:59 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  how to pass a mongdb command to a module and execute it. cspower 0 423 Feb-03-2024, 09:54 PM
Last Post: cspower
  problem in using subprocess module akbarza 5 1,262 Sep-24-2023, 02:02 PM
Last Post: snippsat
  Using subprocess to execute complex command with many arguments medatib531 5 2,255 Apr-27-2023, 02:23 PM
Last Post: medatib531
  use subprocess on linux\pi wwith a "grep " command korenron 2 8,507 Oct-19-2021, 10:52 AM
Last Post: DeaD_EyE
  Question on subprocess module. knoxvilles_joker 3 2,828 Apr-11-2021, 12:51 AM
Last Post: knoxvilles_joker
  Error when running mktorrent subprocess command pythonnewbie138 4 4,133 Sep-16-2020, 01:55 AM
Last Post: pythonnewbie138
  Select correct item from list for subprocess command pythonnewbie138 6 3,514 Jul-24-2020, 09:09 PM
Last Post: pythonnewbie138
  python loop in subprocess vinothkumargomu 6 3,380 Jul-06-2020, 12:02 PM
Last Post: vinothkumargomu
  Subprocess command working for one cmd and for cmd one not wrking PythonBeginner_2020 0 4,213 Mar-25-2020, 01:52 PM
Last Post: PythonBeginner_2020
  How to parallel executing a command using subprocess? larkypython 0 2,231 Nov-28-2019, 03:49 PM
Last Post: larkypython

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020