데이터베이스에서 데이터를 선택하고 파일 시스템에서 비활성 도메인을 삭제하고 있습니다. 때로는 데이터베이스에서 두 번 비활성화 된 도메인이 있는데, 스크립트는 각 행에 대해 진행되기 때문에 두 번 삭제하려고 시도합니다.
문제를 해결하는 방법, 스크립트가 파일 시스템에 이미 삭제 된 데이터베이스에서 호스팅을 찾을 때 삭제되었는지 확인하고 계속해서 충돌하지 않습니다.
os.rmdir('/data/sa/' + name)
FileNotFoundError: [Errno 2] No such file or directory: '/data/sa/test3.com'
masir@linux-hjay:~/Documents/python> ls /data/sa/
내 코드는 다음과 같습니다.
cursor = connection.cursor()
sql="SELECT id, name, state FROM domain WHERE state='2'"
cursor.execute(sql)
records = cursor.fetchall()
print("Total number of records for deleting is: ", cursor.rowcount)
print("\nPrinting each domain record")
for row in records:
print("id = ", row["id"], )
print("name = ", row["name"])
print("state = ", row["state"], "\n")
id = row["id"]
name = row["name"]
state = row["state"]
if state == 2:
# print(state)
print('found records for deleting' + name)
os.rmdir('/data/sa/' + name)
else:
print('no records for deleting found')
print('domain', name)
print('hast state', state, "\n")
다음과 같이 try / except를 사용할 수 있으므로 삭제 단계에서 스크립트가 실패하지 않습니다.
if state == 2:
try:
# print(state)
print('found records for deleting' + name)
os.rmdir('/data/sa/' + name)
except Exception as error:
print("Directory already deleted")
else:
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다