实现Influx1.8每日备份策略
基于omv的docker环境搭建了influx。为了担心数据丢失,采用snapraid进行数据容灾,但是当sync时发现influx数据目录一直被占用导致相关数据同步失败。遂决定排除influx目录,通过influx 备份命令实现数据每日独立备份。
建立备份目录的映射关系由于将influx的数据目录排除在snapraid sync目录范围,所以需要在硬盘新建一个目录,指向docker influx内的一个新目录,如下图所示:
重启docker完成
编写备份脚本进入到上图中的本地备份目录,新建一个sh文件
1touch backup.sh
然后写入如下内容
123456789101112131415#!/bin/bash# 获取当前日期,备份当前influx全部数据库time=$(date "+%Y%m%d-%H%M%S")cd /var/backup/mkdir backup-${time}cd backup-${time}influxd backup -portable .echo 备份当前数据 backup-${ ...
树莓派备份系统到硬盘
树莓派系统运行在一张内存卡中,随着树莓派安装的内容越来越多,越来越重要,所以系统的稳定安全显得尤为重要,下面就来介绍一下如何将树莓派系统盘进行整体备份到硬盘中。
备份树莓派系统盘(内存卡)到硬盘列出所有块设备1lsblk -f
使用dd命令备份内存卡到硬盘1dd if=/dev/mmcblk0 of=/srv/dev-disk-by-uuid-e/backup4rpi/rpi.img bs=1M
压缩img镜像文件dd默认会把整个内存卡进行备份,其中没有用到的空间也会备份,这样镜像大小几乎等于内存卡大小,比较浪费空间。可以用pishrink进行压缩,这样没有用到的空间就会被压缩掉。
下载 pishrink.sh进入到img文件目录,执行
1wget https://raw.githubusercontent.com/Drewsif/PiShrink/master/pishrink.sh
给pishrink.sh赋权限:
1chmod +x pishrink.sh
执行压缩命令:
1bash ...
利用shell脚本实现一键编译前端工程并一键部署到远程环境
在前端开发工作中,在打包完成后往往需要打包部署到测试环境,如果没有Devops环境,则需要手动远程部署到指定服务器下,前端人员有一定的学习成本,并且浪费时间,使用此脚本可以实现一键自动编译打包前端工程,并远程拷贝到指定服务器的指定目录。
12345678910111213141516#!/bin/bash# 执行打包命令npm run build# 获取当前时间作为time变量time=$(date "+%Y%m%d-%H%M%S")# 将远程服务器的原文件夹根据当前日期重命名作为备份ssh root@xx.xxx.xx "mv /var/www/dist /var/www/dist-"${time}# ssh root@xx.xxx.xx 'rm -rf /var/www/dist/*'# 远程拷贝本地的dist文件夹到远程服务器的/var/www目录下scp -r ./dist root@xx.xxx.xx:/var/www/# 给远程服务器的dist目录赋读写权限ssh root@xx.xxx.xx ...
你需要来自SYSTEM的权限才能对此文件夹进行更改 解决方法
删除文件夹如果提示“你需要来自SYSTEM的权限才能对此文件夹进行更改”,如下图所示。
可以这样操作:
右击打开此文件夹属性,如下图,点击高级按钮
出现下图,点击更改
继续,在输入框中输入e,右击按钮检查名称
出现下图,并确认
勾选替换子容器和对象的所有者,应用并确认
重新打开该文件夹属性,并选择高级
添加
选择主体:
在输入框中输入e,右击按钮检查名称
勾上完全控制,勾上仅将这些权限应用到此容器中的对象和/或容器 并确定
点击启用继承button,后会变成禁用继承,勾选箭头,应用并确认
完成!重新点击删除:
本文参考:https://blog.csdn.net/lanluyug/article/details/76559748
自动生成树状文件目录
有的时候,我们需要对一个文件目录,生成一个树状目录文本,这样可以对整个目录层级有一个直观全面的了解,方便对每个目录进行备注说明。
下面从windows和linux系统两个方面来说明如何通过命令行生成树状文件目录。
Windows环境
打开命令行;
通过cd命令进入你需要生成的目录的文件夹下面;(以上也可以直接进入需要生成目录的文件夹地址行中,直接输入 cmd 打开命令行)
输入如下命令;1tree /F . > directory.txt
在当前路径下就能看到一个directory.txt文件夹,里面存放树状结构。如下图所示:
Linux环境
安装tree;1sudo apt intall tree
在需要生成树目录的文件夹下面打开终端;
根据需要输入以下命令。12345# 该命令显示文件下所有的目录tree -a# 该命令显示文件下目录到二级。tree -L 2
moment.js的基本用法示例
开发中经常遇到日期/时间的相关操作,moment.js为此类操作带来了极大的便利,下面通过一个简单的需求,记录一下moment.js的基本用法。
需求获取最近三周的每周一和周日,并将每周的日期罗列出来。
安装并引入moment.js
cdn方式在html页中引入moment.js1<script src="http://cdn.staticfile.org/moment.js/2.24.0/moment.min.js"></script>
npm方式首先执行npm i moment,安装moment。然后在相关ts或者js文件中引入moment1import * as moment from 'moment';
moment.js使用在写js逻辑代码的地方,编写如下代码,即可实现上述需求
12345678910111213141516171819202122232425262728293031323334let week = 3; // 周数// 今天星期几let weekOfDay = new Date().getDa ...
微软必应:每日一图获取接口
个人博客中需要获取bing每日一图的地址,特此记录一下。
bing每日一图
根据原始接口结果进行拼接接口地址:https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1获取结果如下所示:1234567891011121314151617181920212223242526272829{ "images": [ { "startdate": "20220718", "fullstartdate": "202207181600", "enddate": "20220719", // 图片地址 "url": "/th?id=OHR.FraueninselChiemsee_ZH-CN3541482552_1920x1080.jpg&rf=LaDigue_1920x10 ...
nginx绑定多个域名,支持多个网站共用80端口
在建站过程中,往往需要在一个服务器发布多个网站,这些网站需要绑定不同的域名,并且都使用 80 端口来访问。下面就这一需求,来说一下解决方案及 nginx 具体配置。
禁用 ip 访问因为一个服务器部署多个站点,而且都是 80 端口,所以需要先禁用 ip 访问,只支持指定域名访问。禁用 IP 访问有两种方法:
在 nginx.conf 中 http 节点下显示指定 default_server,添加如下配置:
123456# 匹配不到配置文件的主机名默认匹配项, 不允许Ip+不匹配域名的访问。server { listen 80 default_server; server_name _; return 404; }
在 server 下添加如下代码,仅限制 IP 不限制其他设置解析的主机名,方便后期增加解析。
123if ($host ~ "\d+\.\d+\.\d+\.\d") { return 404;}
配置效果如下图所示:
重启 nginx 配置
1nginx ...
MacOS自动挂载NFS目录
最近用OMV搭建了NFS,希望可以通过外网访问,并且可以自动挂载到mac,在需要的时候可以随时访问。通过以下配置可以达到这样两点:
让客户端在有使用到 NFS 文件系统的需求时才会自动挂载
当 NFS 文件系统使用完毕后,可以让 NFS 自动卸除,以避免可能的 RPC 错误
创建本地挂载点首先,需要创建一个由automount服务管理的本地目录。所有远程文件系统都将出现在这个目录下,它充当automount服务的触发器。我将这些远程文件系统保在/Users/zhanghao/nfs目录下。需要使用sudo来创建目录。
注:从Catalina开始,根文件系统现在是只读的。我已经将挂载点移动到用户可写的文件系统/系统/卷/数据.
1$ sudo mkdir /Users/jamesding/nfs
修改master映射自动挂载进程读取文件/etc/auto_master以检索它应该控制的目录列表。我已经将我的资源映射放在一个单独的映射文件/etc/auto_nfs中。将/Users/zhanghao/nfs添加到auto_master文件中,编辑auto_master,添加/User ...
VSCode 配置Markdown模板
因为基于 hexo 写日志,要在 markdown 文件开头添加元数据信息,每次复制很麻烦,所以在 vscode 中配置 markdown 相关的文件模板。
设置 VS Code,使 markdown 文件支持快速联想打开 setting.json,添加如下代码:
1234"[markdown]": { "editor.quickSuggestions": true}
配置模板
Ctrl + Shift + P
输入snippet
点击首选项:配置用户代码片片段
选择markdown.json
编写模板在 body 里面写自己想要的模板
123456789101112131415161718192021222324252627{ // Place your snippets for markdown here. Each snippet is defined under a snippet name and has a prefix, body and // description. The pref ...