ここで確認できると思うコードに疑問がありました。私の要件は、Apache ログとエラー ログを 2 つの異なるサーバーからコピーすることです。forループを使用して、Pythonプログラムを書き留めました。
私のコード:
def copylogs(Appache,Errorlog, folder_prefix) :
root_path = '/home/tza/Desktop/LOGS/'
folders = ['Appache','Errorlog']
for folder in folders:
folder_name = folder_prefix + "_" + folder + str(int(time.time()))
mkdircmd = "mkdir -p " + root_path + "/" + folder_name
os.system(mkdircmd)
filePath = root_path + folder_name
serverPath = "/var/log/apache/*"
cmd = "scp " + "symentic@60.62.1.164:" + serverPath + " " + filePath
cmd = cmd.replace("60.62.1.164" ,myip1)
cmd = os.system(cmd)
print "Logs are at:",root_path+folder_name
time.sleep(10)
filePath = root_path + folder
serverPath = "/var/log/errorlog/*"
cmd = "scp " + "symentic@10.95.21.129:" + serverPath + " " + filePath
cmd = cmd.replace("10.95.21.129" ,myip2)
cmd = os.system(cmd)
print "Logs are at:",root_path+folder_name
今、私のプログラムの最後に関数を呼び出しています:
folder_prefix = "Fail Case-1"
copylogs(Appache,Errorlog, folder_prefix)
ここで問題があります。Programm は正常に実行されますが、ログが上書きされます。つまり、最初に Appache フォルダーが作成され、ログがコピーされてから、もう一度上書きされます。
私が必要とするのは、フォルダー Appachelogs [定義されたタイムスタンプを使用して] を作成し、マシン 1 からログをコピーし、次にマシン 2 からエラー ログをコピーし、プログラムを続行することです。
これはどのように達成できますか?