一些学习中的随笔小记(五)

一些学习中的随笔小记(五)

openpyxl合并多个excel表的多个sheet

import openpyxl
import glob
new_wb = openpyxl.Workbook()

for file in glob.glob('./11月数据/*'):
    wb = openpyxl.load_workbook(file)
    for sheet_str in wb.sheetnames:
        if sheet_str not in new_wb.sheetnames:
            new_wb.create_sheet(sheet_str)

        sheet = wb[sheet_str]
        new_sheet = new_wb[sheet_str]

        for row in sheet.iter_rows(min_row=1):
            row_with_values = [cell.value for cell in row]
            new_sheet.append(row_with_values)

# openpyxl 会生成一个默认的空白Sheet
del new_wb['Sheet']
new_wb.save('test2.xlsx')

调整iptables规则的顺序

iptables -A INPUT -p tcp --dport 8443 -s 43.138.249.118 -j ACCEPT

这条命令是将规则追加到最后,对于先允许再拒绝的场景是不生效的。

需要将iptables允许的规则加到第一条。

iptables有一个“-I”选项,允许您插入新规则到指定位置。例如,要将新规则插入到第三个规则之前:

iptables -I INPUT 3 -j DROP

要将规则移动到第四个规则:

iptables -I INPUT 4 -j DROP

docker查看停止容器中的文件?

找到停止的容器。

方法一:用docker cp将文件拷贝出来

可以使用docker cp命令将停止容器的文件拷贝出来,例如:

docker cp <Container ID>:/path/to/file /host/path/to/file

用此命令可以将容器中的文件拷贝至主机中,以便查看文件内容。

方法二:找到停止容器文件在宿主机的绝对路径

docker inspect <Container ID>

docker指定远程镜像仓库

命令行指定仓库地址

docker image pull <repository>:<tag>
<!--例如-->
docker pull registry.cn-shanghai.aliyuncs.com/daniel-hub/nginx-docker:[镜像版本号]
<!--这里就是从阿里云的镜像仓库服务中拉去niginx-docker镜像-->

更换Docker远程仓库

由于国内外网络环境差异,使用国外的有时候会很慢。

# vi /etc/docker/daemon.json
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
//一定要重启
systemctl restart docker
//查看docker基本信息,来验证是否生效
docker info

SQLsever数据库create file遇到操作系统错误5拒绝访问

当在sql server创建一个数据库时出现错误:尝试打开或创建物理文件 ‘G:\Test.mdf’ 时,CREATE FILE 遇到操作系统错误 5(拒绝访问)。
原因及解决方法如下:

这是因为SQL Server的启动帐户(一般是system或某个操作系统管理员),对所要存储文件的盘根目录没有创建文件的权限(此处为C盘下)。运行services.msc,在服务管理器里找到SQL Server服务(其显示名称为SQL Server (MSSQLSERVER)),右键选中后打开“属性”项,然后再TAB标签看“登录”选项卡,选中本地用户并重启服务。

具体步骤如下图所示:(一)打开服务

(二)在服务管理器里找到SQL Server服务,SQL Server (MSSQLSERVER)窗口中,查看“登录”选项卡,选中本地用户并重启服务。

(三)重新启动

SQL Server 只有mdf文件没有ldf文件的附加方法

CREATE DATABASE testDB 
ON (FILENAME = N'C:\NORTHWND.MDF') 
FOR ATTACH_REBUILD_LOG 
GO 

导入成功

Ubuntu 开启cron日志

因为Ubuntu系统默认是不打开cron日志的,cd 到/var/log目录下是找不到cron.log文件的。

首先我们把cron日志打开,如何打开,很简单,控制台输入

vi /etc/rsyslog.d/50-default.conf

打开文件,在文件中找到cron.*,把前面的#去掉,保存退出,输入

sudo service rsyslog restart

重启系统日志,然后稍微等下应该就能在/var/log目录下看到cron.log,vi cron.log就可以查看cron运行日志了。

find查找可执行文件打tar包并压缩

打包出来的文件带有目录的。

find / -type f -executable -exec tar -rvf executables.tar {} +
gzip -c executables.tar > executables.tgz

如果只想要文件不带目录。

find . -type f -executable -exec cp -t ./extracted_files {} +
tar -czvf executables.tgz ./extracted_files

find 命令中-exec结尾用+\;的区别

find命令中,+号是用来结束-exec选项的标记。它的作用是将找到的文件作为参数一次性传递给后面的命令,而不是每找到一个文件就执行一次命令。

使用+号而不是\;作为-exec选项的结束标记,可以提高命令的效率,减少命令执行的次数。

不解压查看tar包文件

tar -tf executables.tar

这只会列出文件的名称和路径,而不会解压文件或查看其内容。如果需要查看或提取特定文件,可以使用-x选项解压整个tar文件或使用-xvf选项解压并显示正在提取的文件。

tar命令常用参数

  • -c:创建新的 tar 包。
  • -x:解压 tar 包。
  • -t:列出 tar 包中的内容。
  • -r:将文件追加到现有的 tar 包中。
  • -u:仅将比 tar 包中现有文件更新的文件追加到 tar 包中。
  • -f <filename>:指定要操作的 tar 包的文件名。
  • -v:显示详细的操作过程。
  • -z:使用 gzip 压缩或解压缩 tar 包。
  • -j:使用 bzip2 压缩或解压缩 tar 包。
  • -p:保留文件的原始权限和属性。
  • -P:使用绝对路径来存储或提取文件。

为什么执行document.cookie获取不到完整的cookie?

当在浏览器的JavaScript控制台执行document.cookie时,它只返回那些HttpOnly标记为false的cookie。HttpOnly是一种cookie的安全设置,当一个cookie被标记为HttpOnly时,它不能被JavaScript访问。这是为了防止跨站脚本攻击(XSS攻击)。

而在浏览器的开发者工具的Application面板中,能看到所有的cookie,包括那些HttpOnly的cookie。这是因为这个面板直接展示了浏览器存储的cookie,不受HttpOnly设置的影响。

所以如果控制台执行document.cookie时看不到某个cookie,那可能是因为它被设置为了HttpOnly

赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

发表评论