跳至主要内容

博文

为阿里云ecs创建自定义快照脚本

阿里云的ecs自动快照功能只支持最长一周的间隔,而有些生产环境不太需要如此频繁的备份。 因此写了一个每月备份一次的脚本来解决这个问题 一共分五个步骤,分别是创建执行快照的账号,分配账号权限,安装阿里云cli,创建脚本,编辑计划任务。 一.创建账号。 为降低安全风险,这里新创建一个账号用于执行生成快照的脚本。 在创造账号时,只勾选api访问。 记录下创建完成后的token信息。 二.分配账号权限。 创建一个自定义的访问权限策略。 {     "Statement": [         {             "Effect": "Allow",             "Action": "ecs:*Snapshot*",             "Resource": "*"         }     ],     "Version": "1" } 然后将这个策略套给新创建的账号,同时赋予这个账号ecs的只读权限。 三.安装阿里云cli客户端,这里就不做赘述,直接看阿里云的文档就好。 https://help.aliyun.com/document_detail/139508.html?spm=a2c4g.139508.0.0.3c18337a5eCaya 四.创建脚本。 aliyun configure set \   --profile bkadminprofile \   --mode AK \   --region cn-shanghai \   --access-key-id ************************ \   --access-key-secret ********************** 先获取ecs的实例id   aliyun ecs DescribeInstances --RegionId cn-shanghai --output cols=InstanceId,InstanceName rows=Instances.Instance[] #获取ecs实例的磁盘id aliyun ecs DescribeDisks --RegionId
最新博文

利用Nextcloud搭建私有云盘

最近有同学的手机丢了,幸运的是手机最后有找回来。 大部分人手机里有非常多的照片,手机丢了可以买新的,照片丢了就再也找不回来了。因此数据的备份显得非常重要。 因为家里有NAS做raid 1,并且定期做异地备份,数据的安全性还是蛮高的。就有搭建私有云盘的想法。 上网搜索了一下,发现nextcloud是用得比较多的。此次就选用nextcloud来搭建我们的私有云盘。 首先在家里的服务器上新建一台vm,这里选用debian 11,装系统的过程就不讲了。 安装完成后,利用nfs挂载nas的存储 新建挂载目录 mkdir /mnt/nextcloud 编辑/etc/fstab,加入如下一行 192.168.x.x:/volume1/NextCloud /mnt/nextcloud nfs defaults 0 0 这里ip地址和nas存储路径用自己的配置替代 然后sudo mount -a测试一下 接下来开始安装依赖件 安装mariadb sudo apt update sudo apt -y install mariadb-server mariadb-client 配置数据库 sudo mysql_secure_installation  sudo mysql -u root -p 输入配置的密码以登录 配置nextcloud的数据库和用户 CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '密码'; CREATE DATABASE nextcloud; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; FLUSH PRIVILEGES; QUIT 安装php和apache2 sudo apt -y install php php-{cli,xml,zip,curl,gd,cgi,mysql,mbstring} sudo apt -y install apache2 libapache2-mod-php 修改php配置 sudo vim /etc/php/*/apache2/php.ini date.timezone = Asia/Shanghai memory_lim

利用zabbix监控域名到期日期

 公司因为业务原因,注册了各种域名,大约有50多个吧。 因为域名后缀不同,分别注册在不同的域名服务商。 注册的时间和时长也各不相同,为避免出现域名过期而忘记续费,想出用zabbix来监控域名还剩多少天到期,以提醒续费。 比较好的域名信息查询工具是whois命令,whois + 要查询的域名就能得到相关信息。 因为.com、.cn还有.tw的域名信息都是不一样的,我不会写代码能力有限,所以分成三个脚本来分别处理。 切换到zabbix默认的外部检查脚本目录下 cd /usr/lib/zabbix/externalscripts/ 新增com域名监控脚本 sudo nano domaincheck-com.sh 填入如下内容 #!/bin/bash DOMAINS=$1 current_epoch=`date '+%s'` expiry_date=`whois $1 | egrep -i "Expiration Date:|Expires on"| head -1 | awk '{print $NF}'` expiry_epoch=`date --date="$expiry_date" '+%s'` epoch_diff=`expr $expiry_epoch - $current_epoch` echo `expr $epoch_diff / 86400` 然后赋予可执行权限 sudo chmod +x domaincheck-com.sh 测试一下是否可以获取剩余天数 ./domaincheck-com.sh baidu.com 如正常这里会返回域名到期天数 然后新增一个模板,在监控项中填写键值:domaincheck-com.sh["{HOST.CONN}"] 类型:外部检查 信息类型:浮点数 单位:days 更新间隔:12h 然后根据需求填写相应的报警触发机制 另外两个模板制作方法类似,这里就不做复述了。 这里附上.cn和.tw获取域名剩余天数的脚本 CN域名的脚本domaincheck-cn.sh内容: #!/bin/bash DOMAINS=$1 current_epoch=`date '+%s'` expiry_date=`whois

搭建Heimdall主页,方便管理内网服务器

现在越来越多的服务器都有web界面管理或是提供相关服务,为提高管理便利性,搭建Heimdall标签页来提高效率。 Heimdall是一个轻量化的标签服务,https://github.com/linuxserver/Heimdall,官方推荐使用docker-compose运行。 在pve上新建一个ubuntu的容器,然后安装docker-compose,容器安装这里不做描述,直接到环境部署。 先卸载旧版本docker apt-get remove docker docker-engine docker.io containerd runc 添加相关源 apt-get update 安装依赖件 apt-get install ca-certificates curl gnupg lsb-release 添加key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null 安装docker apt-get update apt-get install docker-ce docker-ce-cli containerd.io 安装完成验证一下,pull一个hello-world的镜像 docker run hello-world 下载Docker Compose文件 curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /us

安装部署JumpServer

 最近遭遇一起云主机因安全防护措施不到位被安装挖矿程序的情况。 为提高云主机的安全性和考虑搭建一台跳板机来访问云主机以提高安全性。 目前主流且还在维护的JumpServer是比较好的解决方案,搭建一台JumpServer做测试。 这里使用ubuntu 20.04 lts作为OS。 安装操作系统后先修改软件仓库为国内163源。 sudo cp /etc/apt/sources.list    /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list 注释掉原来的内容 添加网易源 #网易源 deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse 执行更新 sudo apt-get update && sud

解决WSUS服务器内存过高的问题

 最近公司某一台WSUS服务器出现内存过高报警,下班后将这台机器重启了。结果第二天又出现内存不足的情况。看样子不是偶发状况,必须处理才行。 登录机器发现sqlserver.exe和w3wp.exe这两个进程占用大量内存。 sqlserver.exe是数据库程序,这台机器使用内置wid数据库,没有使用sqlserver,无法使用sqlserver management客户端连接进行设定,只能使用微软发布的sqlcmd工具设置。 sqlcmd使用sqlodbc接口访问内置数据库,还需要安装sqlodbc驱动,而该驱动依赖Visual C++ 2017运行库,下载这三个文件VC_redist.x64.exe、msodbcsql.msi和MsSqlCmdLnUtils.msi。然后依序安装即可。 安装完成后,开启一个cmd窗口,输入如下命令连接内置数据库 sqlcmd -E -S \\.\pipe\Microsoft##WID\tsql\query 登录成功后会出现提示符1> 然后输入如下命令显示高级选项 exec sp_configure 'show advanced option', '1'; reconfigure; exec sp_configure; go 然后会显示内置数据库的设定 输入如下命令将内置数据库内存占用调整为4G,这个可以根据各自的服务器来调整。 exec sp_configure 'max server memory', 4096; reconfigure with override; go 执行成功会会有提示,完成后输入quit退出。 这时候在资源管理器里已经能看到sqlserver.exe的内存占用下降到4G。 接下来设置iis服务的内存上限,以解决w3wp.exe的内存占用过大的问题。 打开Internet Infomation Services (IIS) Manager 在服务中点开Application Pools中右键WsusPool,在弹出菜单中点击Advanced Settings。 在Recyling类别中找到Private Memory Limit (KB),设置一个内存上限值,这里单位是KB,大家自己用计算机算一下,我这里给到4G,就是4*1024*1024=419430

PVE安装Windows 11虚拟机 step by step

Win 11已经发布有两周多了,因为引进了tpm机制,只支持较新的设备安装,对于虚拟机的支持不高。 目前各个虚拟化平台针对win 11已经有对应的方案,今天来介绍一下PVE 7.0安装win 11虚拟机。 提前下载win11和virtio win 11的镜像。 win 11镜像下载这里就不说了,很多途径。 virtio的镜像在这里下载https://github.com/virtio-win/virtio-win-pkg-scripts,下载最新的virtio win iso。 新建和配置虚拟机 点击新建虚拟机 给虚拟机起名,然后下一步。 选择加载win 11镜像文件,系统类型选择windows。 系统配置这里: bios选择OVMF(UEFI);机器选择q35;勾选TPM,并选择TPM版本为v2.0;然后存储的位置选择同一个存储。 硬盘设备选择VirtIO,磁盘大小选择64G,32G其实也可以,但是微软要求最低64G。 设置CPU和内存,微软要求最低2核8G,这里我们给4核8G,因为是单节点,所以CPU类型勾选host。 配置网卡信息后继续。 这里不要勾选自动创建后启动,确认配置信息后点击完成。 到新建的虚拟机这里,新建光驱。 选择下载的驱动镜像,点击创建。 完成后点击启动。 启动后进入windows安装界面,这里照一般操作进行。 到安装类型这里选择 自定义安装。 到选择安装位置这里会无法显示硬盘信息,因为缺少驱动,点击加载驱动程序。 然后点击浏览。 选择驱动镜像下的amd64下的w10文件夹,点击确定。 加载驱动后磁盘控制器能够显示,点击下一页。 选中显示的磁盘后点击下一步进行安装。 文件复制完后会重启几次。 安装完成后会启动第一次配置界面。 输入账户信息后进行系统配置。 配置完成后进入桌面。 在设备管理器中有一些设备未能正确识别。 进入驱动镜像,运行virtio-win-ge-x64安装文件安装驱动。 安装完成后,所有设备都能正确识别。 至此win11虚拟机安装完成。