一些学习中的随笔小记(五)
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远程仓库
由于国内外网络环境差异,使用国外的有时候会很慢。
- https://registry.docker-cn.com(docker官网针对中国开的,但是近期不能用了)
- http://hub-mirror.c.163.com(网易)
- https://{your_id}.mirror.aliyuncs.com(阿里的需要你注册,并加入开发者平台)
- http://{your_id}.m.daocloud.io(daocloud,需要你注册的)
# 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
。
macos中使用xattr 命令清除 app 的隔离属性
从网上下载的可执行文件,macos会提示无法打开“xxx”,因为无法验证开发者。
macos无法验证此 App 是否包含恶意软件。
用xattr命令可以用来解决某些应用程序出现提示无法打开时的情况,这样在打开应用时,系统就不会再提示应用被隔离或者来自互联网的警告了。
sudo xattr -r -d com.apple.quarantine ${file}
cp 拷贝文件保持源文件的时间属性
使用 cp
命令的 -p
选项来保留文件的时间戳以及其他属性。
cp -p file1.txt file2.txt
虽然mtime没有变,但是ctime还是改变了。
macos 修改mac地址
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -z sudo ifconfig en0 ether 你的 mac 地址 networksetup -detectnewhardware
根目录执行chmod -R 777 / 补救的方法
对于某些已知的文件或目录,可以手动恢复它们的权限。例如,大多数目录应该有755
权限,大多数文件应该有644
权限。
如果有备份,可以在另一台相同的系统上运行
getfacl -R / > permissions.txt
命令来获取所有文件和目录的权限,然后在出问题的系统上使用
setfacl --restore=permissions.txt
命令来恢复这些权限。
有MySQL数据库文件,但不知道账号密码的情况下如何读取表内容?
如果有一个 MySQL 数据库的物理文件(例如 *.ibd 和 *.frm 文件),但没有对应的 MySQL 服务器的访问权限,可以尝试以下步骤来读取数据:
- 首先,安装一个 MySQL 服务器版本最好和之前的一致。
- 创建一个新的数据库和表,和想要读取的数据库文件有相同的表结构。这一步非常重要,因为 *.ibd 文件并不包含表结构信息,这些信息存储在 *.frm 文件中。
- 关闭的 MySQL 服务器。
- 复制的 *.ibd 文件到新建数据库的目录下,替换新建的对应文件。
- 启动的 MySQL 服务器。
- 使用 SELECT 语句读取表数据。
需要注意的是,这个方法可能无法在所有情况下工作,特别是在的数据文件损坏或者与的 MySQL 版本不兼容的情况下。此外,这个方法需要知道表的结构,否则将无法正确创建新表。
或者用数据库恢复工具直接读取数据表内容也是可行的。
Linux如何开启虚拟内存
在CentOS 7中开启虚拟内存(即配置交换空间)的步骤与大多数Linux发行版类似,主要涉及创建交换文件、设置交换区和启用交换。以下是详细步骤:
1. 检查现有的交换空间
首先,检查系统是否已经配置了交换空间:
sudo swapon --show
如果这个命令没有输出,意味着系统没有配置交换空间。
2. 创建交换文件
假设你想创建一个4GB的交换文件,你可以使用以下命令。这个大小可以根据你的系统需求进行调整:
sudo fallocate -l 4G /swapfile
如果fallocate
命令不可用,可以使用dd
命令创建:
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
3. 设置交换文件的权限
为了保证安全性,只有root用户应该有权限读写交换文件:
sudo chmod 600 /swapfile
4. 创建交换空间
通过以下命令,将文件设置为交换空间:
sudo mkswap /swapfile
5. 启用交换空间
现在,启用刚刚创建的交换空间:
sudo swapon /swapfile
6. 使交换空间永久有效
为了确保在重启后交换空间依然有效,需要把它添加到/etc/fstab
文件中:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
7. 调整swappiness参数(可选)
vm.swappiness
参数控制内核交换数据的倾向。值范围从0到100,较低的值减少交换操作,较高的值使其更积极。可以通过以下命令查看当前的swappiness
值:
cat /proc/sys/vm/swappiness
临时更改swappiness
值,例如设置为20:
sudo sysctl vm.swappiness=20
要永久更改,编辑/etc/sysctl.conf
文件,添加或修改以下行:
vm.swappiness=20
然后重新加载sysctl
配置:
sudo sysctl -p
以上步骤将在CentOS 7上配置和启用虚拟内存。这些操作需要root权限。
赞赏微信赞赏支付宝赞赏
发表评论