을 제외하고파이썬의 crontab ... ValueError를
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
from time import sleep
import os
import logging
import glob
import sys
import subprocess
import pymssql
import shutil
import StringIO
from StringIO import StringIO
#Check share mounted
if os.path.ismount("/home/marco/cas01-share/") == 0:
#logging.info('share not mounted')
print "share not mounted"
#mount share
#logging.info('share now mounted')
#print "share now mounted"
else:
print "share mounted"
# File paths
fullpath2Newfile = "/home/marco/cas01-share/New/"
fullpathfiles2Process = "/home/marco/cas01-share/Process/"
fullpathProcessedfiles = "/home/marco/cas01-share/Processed/"
if not os.listdir('/home/marco/cas01-share/New'):
print "directory empty"
else:
print "directory not empty"
# Directory more than one file?
num_files = len([f for f in os.listdir('/home/marco/cas01-share/New')
if os.path.isfile(os.path.join('/home/marco/cas01-share/New', f))])
print "directory has " + str(num_files) + " files"
num_files = 0
for filename in os.listdir('/home/marco/cas01-share/New'):
succesfullRun = 0
num_files += 1
print filename
filename = str(filename)
batchnumber = filename.strip("['SENSE-extract-ascii--.csv']")[:-9]
print batchnumber
newfullpath2Newfile = fullpath2Newfile + filename
fullpathfiles2Process = "/home/marco/cas01-share/Process/SENSE-extract.csv"
fullpathProcessedfiles = "/home/marco/cas01-share/Processed/SENSE-extract-" + batchnumber + ".csv"
print newfullpath2Newfile
print fullpathfiles2Process
print fullpathProcessedfiles
# Execute job
ExceptionFlag = 0
while (succesfullRun == 0):
if ExceptionFlag == 0:
shutil.move(newfullpath2Newfile, fullpathfiles2Process)
try:
# Move to sense check folder
# Connect to DB
conn = pymssql.connect(server='IP', user='User', password='password', tds_version='8.0')
cursor = conn.cursor()
cursor.execute("EXEC msdb.dbo.sp_start_job @job_name = 'Marco_test'")
except Exception as e:
(error_code, error_message) = e
ExceptionFlag = 1
#print error_message
if "does not exist" in error_message:
print "ERROR: Job name not found"
if "job is already running" in error_message:
print "ERROR: a Job is already running"
if "job already has a pending request" in error_message:
print "ERROR: pending request"
time.sleep(0.5)
else:
print "Job executed succesfully"
# Copy file to processed
shutil.copy(fullpathfiles2Process, fullpathProcessedfiles)
succesfullRun = 1
conn.close()
time.sleep(0.5)
exit()
을 시도하지만 crontab을에 예약 할 때 나는 울부 짖는 오류를 얻을
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
#SENSE
*/5 * * * * /usr/bin/python /home/administrator/Share/scripts/python3 >> /home/administrator/Share/scripts/logs/sense$
는이 오류 얻을 :
내가 생각하는 그것의 일정 조 실행 "크로노스 사이에 파이프 라인이 없다 함께 할 수있는 b "와 스크립트 자체, 나는 그것이 어떤 정보를 얻고 어디에서 정보를 얻을 수 있는지 알지 못한다면 알 수 없다 ...Traceback (most recent call last): File "...", line 239, in (error_code, error_message) = e ValueError: need more than 1 value to unpack
EXECUT의 예외를 잡으려고 노력할 때 MSSQL JOB 명령.
그냥 담당자 'print (e)'를 사용하여 오류가 무엇인지 확인하십시오. 그것은 당신이 예상하지 못한 것일 수도 있습니다. 일단 그 버그를 고치면, 예외를 제외하고는 예외를 바꿔서 알려지지 않은 에러가 조용히 전달되지 않도록해야합니다. – zondo