LINCY
2013-06-19 08:11:23 UTC
Traceback (most recent call last):
** IDLE Internal Exception:
File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/idlelib/run.py", line 334, in runcode
exec(code, self.locals)
File "/Volumes/local/io-works/home/shared/sync/run.py", line 6, in
name = sys.argv[1]
IndexError: list index out of range
The entire python code:
import os
import sys
import fileinput
import datetime
from time import localtime
name = sys.argv[1]
# log specifies the file that is supposed to be parsed by the script
log = fileinput.input('/var/log/secure.log')
L = localtime()
CalendarMonth = L[1]
today = L[2]
Month = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
MonthVar = CalendarMonth - 1
MonthName = Month[MonthVar]
#
#def timetest determines whether the user logged in within the last hour
#
def timetest(hour,min, sec, Hour, Min, Sec):
x = (int(hour)*60)+int(min)+(int(sec)/60) - 180
y = (int(Hour)*60)+int(Min)+(int(Sec)/60)
if y >= x:
z = 'true'
else:
z = 'false'
return z
login = 'User info context values set for'
logwindow = 'Showing Login Window'
failedauth = 'Failed to authenticate'
firstlist = []
for line in log:
if MonthName in line:
h = line.split()
day = float(h[1])
if day == today:
if login in line:
firstlist.append(line)
elif failedauth in line:
firstlist.append(line)
elif logwindow in line:
firstlist.append(line)
else: pass
else: pass
else: pass
firstlistlength = int(len(firstlist))
if firstlistlength == 0:
pass
else:
count1 = 0
count2 = 0
actuallist = []
while count1 <= count2:
if count1 == count2:
tryline = firstlist[count1]
count3 = count1 + 1
try:
nextline = firstlist[count3]
except IndexError:
actuallist.append(tryline)
break
if login in tryline:
if failedauth in nextline:
count1 = count1 + 1
count2 = count2 + 1
else:
actuallist.append(tryline)
count1 = count1 + 1
count2 = count2 + 1
else:
count1 = count1 + 1
count2 = count2 + 1
else:
pass
if firstlistlength == 0:
pass
else:
actuallist.reverse()
lastlogin = []
namelist = []
for line in actuallist:
if name in namelist:
pass
elif name in line:
lastlogin.append(line)
namelist.append(name)
else:
lastlogin.append(line)
intlastlogin = int(len(lastlogin))
if int(len(namelist)) == 0:
pass
else:
if intlastlogin == 1:
#this is were the actual rsync command is executed
rsync = 'rsync -rlptoDuz --ignore-errors --bwlimit=3000 --exclude-from=/home/shared/sync/exclude --delete /home/'+name+'/ /Volumes/local/io-works/home/'+name+'/'
os.system(rsync)
else:
intnextline = int(intlastlogin - 2)
nextline = lastlogin[intnextline]
sys.stdout.write(nextline)
sys.stdout.write('\n')
tim = datetime.datetime.now()
hour = '%d' %tim.hour
min = '%d' %tim.minute
sec = '%d' %tim.second
index1 = nextline.split()
Time = index1[2]
Hour = Time[:2]
Min = Time[3:5]
Sec = Time[6:]
test = timetest(hour,min, sec, Hour, Min, Sec)
if test == 'true':
#this is were the actual rsync command is executed
rsync = 'rsync -rlptoDuz --ignore-errors --bwlimit=3000 --exclude-from=/home/shared/sync/exclude --delete /home/'+name+'/ /Volumes/local/io-works/home/'+name+'/'
os.system(rsync)
else:
pass
The code works absolutely perfectly with MAC OS 10.5.8 but it is giving me error in MAC OS 10.8.2.
Please see the code in case you could figure out the problem