1.网站关闭清单
2.网站关闭脚本
02nginx_close.sh
#!/bin/bash
#echo "13 test.com"
#ssh root@192.168.120.145 "/data/shells/02nginx_close.sh > /dev/null 2>&1 &"
#echo "14 test1.com"
#ssh root@192.168.179.5 "/data/shells/02nginx_close.sh > /dev/null 2>&1 &"
#echo "15 test2.com"
#scp -r /data/nginx.bak/192.168.162.1/2020/vhosts/test2.confguanbi root@192.168.162.1:/data/app/nginx/conf/vhosts/test2.conf
#scp -r /data/nginx.bak/192.168.162.2/2020/vhosts/test2.confguanbi root@192.168.162.2:/data/app/nginx/conf/vhosts/test2.conf
#scp -r /data/nginx.bak/192.168.162.9/2020/vhosts/test2.confguanbi root@192.168.162.9:/data/app/nginx/conf/vhosts/test2.conf
#scp -r /data/nginx.bak/192.168.162.10/2020/vhosts/test2.confguanbi root@192.168.162.10:/data/app/nginx/conf/vhosts/test2.conf
#echo "16 test3.com"
#scp -r /data/nginx.bak/192.168.162.1/2020/vhosts/test3.confguanbi root@192.168.162.1:/data/app/nginx/conf/vhosts/test3.conf
#scp -r /data/nginx.bak/192.168.162.2/2020/vhosts/test3.confguanbi root@192.168.162.2:/data/app/nginx/conf/vhosts/test3.conf
#scp -r /data/nginx.bak/192.168.162.9/2020/vhosts/test3.confguanbi root@192.168.162.9:/data/app/nginx/conf/vhosts/test3.conf
#scp -r /data/nginx.bak/192.168.162.10/2020/vhosts/test3.confguanbi root@192.168.162.10:/data/app/nginx/conf/vhosts/test3.conf
echo "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
3.网站开启脚本
03nginx_kaiqi.sh
#!/bin/bash
#echo "13 test.com"
#ssh root@192.168.120.145 "/data/shells/03nginx_kaiqi.sh > /dev/null 2>&1 &"
#echo "14 test1.com"
#ssh root@192.168.179.5 "/data/shells/03nginx_kaiqi.sh > /dev/null 2>&1 &"
#echo "15 test2.com"
#scp -r /data/nginx.bak/192.168.162.1/2020/vhosts/test2.conf root@192.168.162.1:/data/app/nginx/conf/vhosts/test2.conf
#scp -r /data/nginx.bak/192.168.162.2/2020/vhosts/test2.conf root@192.168.162.2:/data/app/nginx/conf/vhosts/test2.conf
#scp -r /data/nginx.bak/192.168.162.9/2020/vhosts/test2.conf root@192.168.162.9:/data/app/nginx/conf/vhosts/test2.conf
#scp -r /data/nginx.bak/192.168.162.10/2020/vhosts/test2.conf root@192.168.162.10:/data/app/nginx/conf/vhosts/test2.conf
#echo "16 test3.com"
#scp -r /data/nginx.bak/192.168.162.1/2020/vhosts/test3.conf root@192.168.162.1:/data/app/nginx/conf/vhosts/test3.conf
#scp -r /data/nginx.bak/192.168.162.2/2020/vhosts/test3.conf root@192.168.162.2:/data/app/nginx/conf/vhosts/test3.conf
#scp -r /data/nginx.bak/192.168.162.9/2020/vhosts/test3.conf root@192.168.162.9:/data/app/nginx/conf/vhosts/test3.conf
#scp -r /data/nginx.bak/192.168.162.10/2020/vhosts/test3.conf root@192.168.162.10:/data/app/nginx/conf/vhosts/test3.conf
echo "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
4.python代码思路
1.按照表格列,获取网站清单,生成2个表格(全程开放.xls 全程关闭.xls 限时开放.xls)
2.获取3个表格中的网站名称,生成list
3.通过获取的网站名称,在shells脚本中获取关闭和开启的命令,生成新的脚本
4.拼接自己想要的脚本内容
5.代码内容
5.1.按照表格列,获取网站清单,生成2个表格(全程开放.xls 全程关闭.xls 限时开放.xls)
全程开放
import xlrd
import os
import xlwt
# -*- coding:utf-8 -*-
data = xlrd.open_workbook('test.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
# 用于存储符合条件的数据
filtered_data = []
# 循环逐行提取数据并筛选
for i in range(nrows):
if i == 0: # 跳过第一行
continue
row_data = table.row_values(i)
if row_data[7] == 1: # 如果第一个元素等于'R4'
filtered_data.append(row_data)
# 对 filtered_data 中的数据按照第9个元素排序
filtered_data_sorted1 = sorted(filtered_data, key=lambda x: x[7], reverse=True)
#删除多余的列
for inner_list in filtered_data_sorted1:
del inner_list[0]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
# 输出排序前的数据
print(filtered_data_sorted1)
# 关闭文件
data.release_resources()
# 创建一个新的 Excel 文件
output_workbook = xlwt.Workbook()
# 添加一个工作表
output_sheet = output_workbook.add_sheet('Sheet1')
# 设置单元格左对齐
style = xlwt.XFStyle()
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_LEFT
style.alignment = alignment
# 将筛选出的数据写入到新文件中,左对齐
for i, row in enumerate(filtered_data_sorted1):
for j, value in enumerate(row):
output_sheet.write(i, j, value, style)
# 保存文件
output_workbook.save('全程开启.xls')
限时开放
import xlrd
import os
import xlwt
# -*- coding:utf-8 -*-
data = xlrd.open_workbook('test.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
# 用于存储符合条件的数据
filtered_data = []
# 循环逐行提取数据并筛选
for i in range(nrows):
if i == 0: # 跳过第一行
continue
row_data = table.row_values(i)
if row_data[8] == 1: # 如果第一个元素等于'R4'
filtered_data.append(row_data)
# 对 filtered_data 中的数据按照第9个元素排序
filtered_data_sorted1 = sorted(filtered_data, key=lambda x: x[8], reverse=True)
#删除多余的列
for inner_list in filtered_data_sorted1:
del inner_list[0]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
# 输出排序前的数据
print(filtered_data_sorted1)
# 关闭文件
data.release_resources()
# 创建一个新的 Excel 文件
output_workbook = xlwt.Workbook()
# 添加一个工作表
output_sheet = output_workbook.add_sheet('Sheet1')
# 设置单元格左对齐
style = xlwt.XFStyle()
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_LEFT
style.alignment = alignment
# 将筛选出的数据写入到新文件中,左对齐
for i, row in enumerate(filtered_data_sorted1):
for j, value in enumerate(row):
output_sheet.write(i, j, value, style)
# 保存文件
output_workbook.save('限时开启.xls')
全程关闭
import xlrd
import os
import xlwt
# -*- coding:utf-8 -*-
# 要删除的文件列表
files_to_delete = ["./test.xls", "./全程关闭.xls", "./全程开启.xls", "./限时开启.xls"]
# 遍历文件列表,删除文件
for file_path in files_to_delete:
if os.path.exists(file_path):
os.remove(file_path)
print(f"{file_path} 已删除。")
else:
print(f"{file_path} 不存在。")
folder_path = r'./'
# 获取目录下所有文件
file_list = os.listdir(folder_path)
# 遍历文件列表
for file_name in file_list:
# 检查文件是否以 .xls 结尾
if file_name.endswith('.xls'):
# 构造新文件名
new_file_name = os.path.join(folder_path, 'test.xls')
# 重命名文件
os.rename(os.path.join(folder_path, file_name), new_file_name)
data = xlrd.open_workbook('test.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
# 用于存储符合条件的数据
filtered_data = []
# 循环逐行提取数据并筛选
for i in range(nrows):
if i == 0: # 跳过第一行
continue
row_data = table.row_values(i)
if row_data[9] == 1: # 如果第一个元素等于1
filtered_data.append(row_data) # 追加插入
# 对 filtered_data 中的数据按照第9个元素排序
filtered_data_sorted1 = sorted(filtered_data, key=lambda x: x[9], reverse=True)
#删除多余的列
for inner_list in filtered_data_sorted1:
del inner_list[0]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
for inner_list in filtered_data_sorted1:
del inner_list[1]
# 输出排序前的数据
print(filtered_data_sorted1)
# 关闭文件
data.release_resources()
# 创建一个新的 Excel 文件
output_workbook = xlwt.Workbook()
# 添加一个工作表
output_sheet = output_workbook.add_sheet('Sheet1')
# 设置单元格左对齐
style = xlwt.XFStyle()
alignment = xlwt.Alignment()
alignment.horz = xlwt.Alignment.HORZ_LEFT
style.alignment = alignment
# 将筛选出的数据写入到新文件中,左对齐
for i, row in enumerate(filtered_data_sorted1):
for j, value in enumerate(row):
output_sheet.write(i, j, value, style)
# 保存文件
output_workbook.save('全程关闭.xls')
5.2.获取3个表格中的网站名称,生成list
全程关闭
import xlrd
import os
import xlwt
# -*- coding:utf-8 -*-
data = xlrd.open_workbook('全程关闭.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
# 用于存储符合条件的数据
filtered_data = []
# 循环逐行提取数据并筛选
for i in range(nrows):
row_data = table.row_values(i)
if row_data[0] != 1:
filtered_data.append(row_data)
print(filtered_data)
# list中套list;如何转换成只有一个list [[1, 2, 3], [4, 5], [6]]
flat_list = [item for sublist in filtered_data for item in sublist]
print(flat_list) # 输出: [1, 2, 3, 4, 5, 6]
全程开启
import xlrd
import os
import xlwt
# -*- coding:utf-8 -*-
data = xlrd.open_workbook('全程开启.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
# 用于存储符合条件的数据
filtered_data = []
# 循环逐行提取数据并筛选
for i in range(nrows):
row_data = table.row_values(i)
if row_data[0] != 1:
filtered_data.append(row_data)
print(filtered_data)
# list中套list;如何转换成只有一个list [[1, 2, 3], [4, 5], [6]]
flat_list = [item for sublist in filtered_data for item in sublist]
print(flat_list) # 输出: [1, 2, 3, 4, 5, 6]
限时开启
import xlrd
import os
import xlwt
# -*- coding:utf-8 -*-
data = xlrd.open_workbook('限时开启.xls') # 打开xls文件
table = data.sheets()[0] # 打开第一张表
nrows = table.nrows # 获取表的行数
# 用于存储符合条件的数据
filtered_data = []
# 循环逐行提取数据并筛选
for i in range(nrows):
row_data = table.row_values(i)
if row_data[0] != 1:
filtered_data.append(row_data)
print(filtered_data)
# list中套list;如何转换成只有一个list [[1, 2, 3], [4, 5], [6]]
flat_list = [item for sublist in filtered_data for item in sublist]
print(flat_list) # 输出: [1, 2, 3, 4, 5, 6]
5.3.通过获取的网站名称,在shells脚本中获取关闭和开启的命令,生成新的脚本
全程关闭
import read_qcgb
import os
def delete_files_in_directory(directory):
for file in os.listdir(directory):
file_path = os.path.join(directory, file)
try:
if os.path.isfile(file_path):
os.remove(file_path)
elif os.path.isdir(file_path):
delete_files_in_directory(file_path) # 递归删除子目录中的文件
os.rmdir(file_path) # 删除空的子目录
except Exception as e:
print(f"Failed to delete {file_path}. Reason: {e}")
# 要删除文件的目录路径
target_directory = './shells/qcgb/'
# 调用函数删除目录中的所有文件
delete_files_in_directory(target_directory)
# -*- coding:utf-8 -*-
filename = '02nginx_close.sh' # 将这里的your_file.sh替换为你的文件名
output_filename = './shells/qcgb/02nginx_close.sh'
keywords = read_qcgb.flat_list
with open(filename, 'r', encoding='utf-8') as file:
lines = file.readlines()
with open(output_filename, 'w', encoding='utf-8') as output_file: # 'w' 表示写入模式
# 遍历所有行
i = 0
while i < len(lines):
# 从第二个字符开始截取并去除两端空白
current_line = lines[i][1:].strip()
# 检查当前行是否包含任意一个关键词
if any(keyword in current_line for keyword in keywords):
output_file.write(current_line + '\n') # 写入当前行
# 进入内部循环,写入后续的非空行
j = i + 1
while j < len(lines):
# 从第二个字符开始截取并去除两端空白
next_line = lines[j][1:].strip()
if next_line: # 如果下一行非空
output_file.write(next_line + '\n')
j += 1
else: # 如果遇到空行,跳出循环
break
# 更新外层循环的索引,跳过已处理的行
i = j
else:
i += 1
filename1 = '03nginx_kaiqi.sh' # 将这里的your_file.sh替换为你的文件名
output_filename1 = './shells/qcgb/03nginx_kaiqi.sh'
keywords1 = read_qcgb.flat_list
with open(filename1, 'r', encoding='utf-8') as file:
lines = file.readlines()
with open(output_filename1, 'w', encoding='utf-8') as output_file: # 'w' 表示写入模式
# 遍历所有行
i = 0
while i < len(lines):
# 从第二个字符开始截取并去除两端空白
current_line = lines[i][1:].strip()
# 检查当前行是否包含任意一个关键词
if any(keyword in current_line for keyword in keywords1):
output_file.write(current_line + '\n') # 写入当前行
# 进入内部循环,写入后续的非空行
j = i + 1
while j < len(lines):
# 从第二个字符开始截取并去除两端空白
next_line = lines[j][1:].strip()
if next_line: # 如果下一行非空
output_file.write(next_line + '\n')
j += 1
else: # 如果遇到空行,跳出循环
break
# 更新外层循环的索引,跳过已处理的行
i = j
else:
i += 1
#第一行新增#!/bin/bash
with open('./shells/qcgb/02nginx_close.sh', 'r+') as file:
content = file.read()
file.seek(0, 0)
file.write('#!/bin/bash\n\n' + content)
#最后一行新增
with open('./shells/qcgb/02nginx_close.sh', 'a') as file:
file.write('''\necho "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
''')
#第一行新增#!/bin/bash
with open('./shells/qcgb/03nginx_kaiqi.sh', 'r+') as file:
content = file.read()
file.seek(0, 0)
file.write('#!/bin/bash\n\n' + content)
#最后一行新增
with open('./shells/qcgb/03nginx_kaiqi.sh', 'a') as file:
file.write('''\necho "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
''')
with open('./shells/qcgb/02nginx_close.sh', 'r', newline='') as fin:
data = fin.read()
with open('./shells/qcgb/02nginx_close.sh', 'w', newline='\n') as fout:
fout.write(data)
with open('./shells/qcgb/03nginx_kaiqi.sh', 'r', newline='') as fin:
data = fin.read()
with open('./shells/qcgb/03nginx_kaiqi.sh', 'w', newline='\n') as fout:
fout.write(data)
全程开启
import read_qckq
import os
def delete_files_in_directory(directory):
for file in os.listdir(directory):
file_path = os.path.join(directory, file)
try:
if os.path.isfile(file_path):
os.remove(file_path)
elif os.path.isdir(file_path):
delete_files_in_directory(file_path) # 递归删除子目录中的文件
os.rmdir(file_path) # 删除空的子目录
except Exception as e:
print(f"Failed to delete {file_path}. Reason: {e}")
# 要删除文件的目录路径
target_directory = './shells/kq/'
# 调用函数删除目录中的所有文件
delete_files_in_directory(target_directory)
# -*- coding:utf-8 -*-
filename = '02nginx_close.sh' # 将这里的your_file.sh替换为你的文件名
output_filename = './shells/kq/02nginx_close.sh'
keywords = read_qckq.flat_list
with open(filename, 'r', encoding='utf-8') as file:
lines = file.readlines()
with open(output_filename, 'w', encoding='utf-8') as output_file: # 'w' 表示写入模式
# 遍历所有行
i = 0
while i < len(lines):
# 从第二个字符开始截取并去除两端空白
current_line = lines[i][1:].strip()
# 检查当前行是否包含任意一个关键词
if any(keyword in current_line for keyword in keywords):
output_file.write(current_line + '\n') # 写入当前行
# 进入内部循环,写入后续的非空行
j = i + 1
while j < len(lines):
# 从第二个字符开始截取并去除两端空白
next_line = lines[j][1:].strip()
if next_line: # 如果下一行非空
output_file.write(next_line + '\n')
j += 1
else: # 如果遇到空行,跳出循环
break
# 更新外层循环的索引,跳过已处理的行
i = j
else:
i += 1
filename1 = '03nginx_kaiqi.sh' # 将这里的your_file.sh替换为你的文件名
output_filename1 = './shells/kq/03nginx_kaiqi.sh'
keywords1 = read_qckq.flat_list
with open(filename1, 'r', encoding='utf-8') as file:
lines = file.readlines()
with open(output_filename1, 'w', encoding='utf-8') as output_file: # 'w' 表示写入模式
# 遍历所有行
i = 0
while i < len(lines):
# 从第二个字符开始截取并去除两端空白
current_line = lines[i][1:].strip()
# 检查当前行是否包含任意一个关键词
if any(keyword in current_line for keyword in keywords1):
output_file.write(current_line + '\n') # 写入当前行
# 进入内部循环,写入后续的非空行
j = i + 1
while j < len(lines):
# 从第二个字符开始截取并去除两端空白
next_line = lines[j][1:].strip()
if next_line: # 如果下一行非空
output_file.write(next_line + '\n')
j += 1
else: # 如果遇到空行,跳出循环
break
# 更新外层循环的索引,跳过已处理的行
i = j
else:
i += 1
#第一行新增#!/bin/bash
with open('./shells/kq/02nginx_close.sh', 'r+') as file:
content = file.read()
file.seek(0, 0)
file.write('#!/bin/bash\n\n' + content)
#最后一行新增
with open('./shells/kq/02nginx_close.sh', 'a') as file:
file.write('''\necho "ssh"
echo "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
''')
#第一行新增#!/bin/bash
with open('./shells/kq/03nginx_kaiqi.sh', 'r+') as file:
content = file.read()
file.seek(0, 0)
file.write('#!/bin/bash\n\n' + content)
#最后一行新增
with open('./shells/kq/03nginx_kaiqi.sh', 'a') as file:
file.write('''\necho "ssh"
echo "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
''')
with open('./shells/kq/02nginx_close.sh', 'r', newline='') as fin:
data = fin.read()
with open('./shells/kq/02nginx_close.sh', 'w', newline='\n') as fout:
fout.write(data)
with open('./shells/kq/03nginx_kaiqi.sh', 'r', newline='') as fin:
data = fin.read()
with open('./shells/kq/03nginx_kaiqi.sh', 'w', newline='\n') as fout:
fout.write(data)
显示开放
import read_xskq
import os
def delete_files_in_directory(directory):
for file in os.listdir(directory):
file_path = os.path.join(directory, file)
try:
if os.path.isfile(file_path):
os.remove(file_path)
elif os.path.isdir(file_path):
delete_files_in_directory(file_path) # 递归删除子目录中的文件
os.rmdir(file_path) # 删除空的子目录
except Exception as e:
print(f"Failed to delete {file_path}. Reason: {e}")
# 要删除文件的目录路径
target_directory = './shells/xskq/'
# 调用函数删除目录中的所有文件
delete_files_in_directory(target_directory)
# -*- coding:utf-8 -*-
filename = '02nginx_close.sh' # 将这里的your_file.sh替换为你的文件名
output_filename = './shells/xskq/02nginx_close.sh'
keywords = read_xskq.flat_list
with open(filename, 'r', encoding='utf-8') as file:
lines = file.readlines()
with open(output_filename, 'w', encoding='utf-8') as output_file: # 'w' 表示写入模式
# 遍历所有行
i = 0
while i < len(lines):
# 从第二个字符开始截取并去除两端空白
current_line = lines[i][1:].strip()
# 检查当前行是否包含任意一个关键词
if any(keyword in current_line for keyword in keywords):
output_file.write(current_line + '\n') # 写入当前行
# 进入内部循环,写入后续的非空行
j = i + 1
while j < len(lines):
# 从第二个字符开始截取并去除两端空白
next_line = lines[j][1:].strip()
if next_line: # 如果下一行非空
output_file.write(next_line + '\n')
j += 1
else: # 如果遇到空行,跳出循环
break
# 更新外层循环的索引,跳过已处理的行
i = j
else:
i += 1
filename1 = '03nginx_kaiqi.sh' # 将这里的your_file.sh替换为你的文件名
output_filename1 = './shells/xskq/03nginx_kaiqi.sh'
keywords1 = read_xskq.flat_list
with open(filename1, 'r', encoding='utf-8') as file:
lines = file.readlines()
with open(output_filename1, 'w', encoding='utf-8') as output_file: # 'w' 表示写入模式
# 遍历所有行
i = 0
while i < len(lines):
# 从第二个字符开始截取并去除两端空白
current_line = lines[i][1:].strip()
# 检查当前行是否包含任意一个关键词
if any(keyword in current_line for keyword in keywords1):
output_file.write(current_line + '\n') # 写入当前行
# 进入内部循环,写入后续的非空行
j = i + 1
while j < len(lines):
# 从第二个字符开始截取并去除两端空白
next_line = lines[j][1:].strip()
if next_line: # 如果下一行非空
output_file.write(next_line + '\n')
j += 1
else: # 如果遇到空行,跳出循环
break
# 更新外层循环的索引,跳过已处理的行
i = j
else:
i += 1
#第一行新增#!/bin/bash
with open('./shells/xskq/02nginx_close.sh', 'r+') as file:
content = file.read()
file.seek(0, 0)
file.write('#!/bin/bash\n\n' + content)
#最后一行新增
with open('./shells/xskq/02nginx_close.sh', 'a') as file:
file.write('''\necho "ssh"
echo "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
''')
#第一行新增#!/bin/bash
with open('./shells/xskq/03nginx_kaiqi.sh', 'r+') as file:
content = file.read()
file.seek(0, 0)
file.write('#!/bin/bash\n\n' + content)
#最后一行新增
with open('./shells/xskq/03nginx_kaiqi.sh', 'a') as file:
file.write('''\necho "ssh"
echo "ssh"
ssh root@192.168.162.1 "/data/nginx_reload.sh"
ssh root@192.168.162.2 "/data/nginx_reload.sh"
ssh root@192.168.162.9 "/data/nginx_reload.sh"
ssh root@192.168.162.10 "/data/nginx_reload.sh"
if [ $? != 0 ];then
echo "scp failed..."
else
echo "scp success..."
fi
''')
with open('./shells/xskq/02nginx_close.sh', 'r', newline='') as fin:
data = fin.read()
with open('./shells/xskq/02nginx_close.sh', 'w', newline='\n') as fout:
fout.write(data)
with open('./shells/xskq/03nginx_kaiqi.sh', 'r', newline='') as fin:
data = fin.read()
with open('./shells/xskq/03nginx_kaiqi.sh', 'w', newline='\n') as fout:
fout.write(data)
执行代码
main.py
import subprocess
# -*- coding:utf-8 -*-
# 找到全程关闭的清单
subprocess.run(["python", "01qcgb.py"])
# 找到全程开启的清单
subprocess.run(["python", "02qckq.py"])
# 找到限时开启的清单
subprocess.run(["python", "03xskq.py"])
# 查看符合 全程关闭的网站清单
subprocess.run(["python", "04find_qcgb.py"])
# 拼接脚本
subprocess.run(["python", "05find_kq.py"])
# 拼接脚本
subprocess.run(["python", "06find_xskq.py"])
代码写的比较low,欢迎大家多多指定