晴风 - 2020年12月
type: channel
link: https://www.clearwind.cc/index.php/2020/12/
description: 有些人可能插肩而过就再也见不到了
items: java 操作excel分sheet
items: Java Excelutil工具类
items: linux 网卡启动报Cannot find device eth0解决方法
items: Ubantu&Debian 修改时区和语言
items: Debian 9安装桌面与远程连接
items: 安装ServerStatus-Hotaru手动配置HTTP服务问题及解决
items: linux socks代理
items: linux安装trojan客户端

java 操作excel分sheet
type: item
date: 2020-12-26T18:46:00+08:00
description: 做了一个需求,我已经从数据库里跑出来了需要的数据放到excel里了,现在又要在区县的基础上细分到镇与街道,不想手动分了,写了个java程序来跑,毕竟不止是一个区县呢...之前写的Excel工具类也正好派上用场.import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; /** * 根据户籍地址分镇,街道 * @author 晴风 */ public class ExcelFenSheet { //读文件路径 public static final String wbName = "C:\\Users\\Clearwind\\Desktop\\xxxxx\\桐城市\\xxxxxxx.xlsx"; public static final String dataSheetName = "zjhmcx_temp3"; //写文件路径 public static final String outputPath = "C:\\Users\\Clearwind\\Desktop\\xxxxx\\桐城市"; //所有镇,街道 public static final String[] strings = { "鲟鱼", "孔城", "范岗", "青草", "金神", "唐湾", "双港", "嬉子湖", "新渡", "大关", "吕亭", "黄甲", "文昌", "龙眠", "龙腾" }; public static void main(String[] args) throws Exception{ //初始化输出文件 String outputFile = outputPath + "\\" + initOutputFile(); Workbook wb = ExcelUtil.getWorkBook(wbName); Workbook wbNew = ExcelUtil.getWorkBook(outputFile); //取sheet Sheet st = wb.getSheet(dataSheetName); //sheet内数据行数 int rowNumbs = st.getPhysicalNumberOfRows(); //遍历sheet for (int i = 1; i < rowNumbs; i++) { //初始化hjdz String hjdz = ""; //取第i行数据 List<String> line = ExcelUtil.getOneRowToList(st, i); System.out.println("正在处理第" + i + "行..."); //简单处理hjdz可能为空的问题 if (line.size() < 3){ hjdz = ""; } else { hjdz = line.get(2); } //分值写入 boolean isContain = false; for (String str : strings){ //找到匹配的值 if (hjdz.contains(str)) { isContain = true; //写数据到对应的sheet writeSheet(wbNew,line,str); } } //均不匹配,写到other sheet if (!isContain) { //System.out.println("什么也没找到..."); writeSheet(wbNew,line,"other"); } } //保存更改 try { wbNew.write(new FileOutputStream(outputFile)); } catch (Exception e) { e.printStackTrace(); } } public static void writeSheet(Workbook wb,List<String> data,String sheetName) { Sheet sheet = wb.getSheet(sheetName); //取得最后一行索引 int lastRowNum = sheet.getLastRowNum(); //加表头 if (lastRowNum == 0) { ArrayList<String> head…

Java Excelutil工具类
type: item
date: 2020-12-11T08:25:00+08:00
description: 工作上有时要整理挺多excel的,好多工作是体力活,所以写了个java的excel工具类来辅助工作.更新...pom:<dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.4</version> <scope>test</scope> </dependency> </dependencies>ExcelUtil:package clearwind; import java.io.*; import java.util.*; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author 晴风 * * Workbook: excel表格对象,可包含多个Sheet * Sheet: 工作表对象,包含多个Row * Row: 行对象,包含多个Cell * Cell: 单元格对象,最小的对象,有多种单元格数据类型 */ public class ExcelUtil { /***索引 * */ private static final Logger LOGGER = LoggerFactory.getLogger(ExcelUtil.class); public static final String XLS = ".xls"; public static final String XLSX = ".xlsx"; public static final String DEFAULT_FONT_NAME = "宋体"; public static final String CRLF = "\r\n"; /** * 预设的默认的样式 * 宋体 11号 有边框 * * @param workbook Workbook对象 * @param isTitle 是否是标题 * @return CellStyle */ public static CellStyle getDefaultCellStyle(Workbook workbook, boolean isTitle) { //创建样式 Font defaultFont = workbook.createFont(); CellStyle defaultCellStyle = workbook.createCellStyle(); //设置字体样式 defaultFont.setFontName(DEFAULT_FONT_NAME); // defaultFont.setFontHeight((short) 11); //这么写并非11号字体 //标题加粗 if (isTitle) { defaultFont.setBold(true); } //四边框 defaultCellStyle.setBorderBottom(BorderStyle.MEDIUM); defaultCellStyle.setBorderLeft(BorderStyle.MEDIUM); defaultCellStyle.setBorderRight(BorderStyle.MEDIUM); defaultCellStyle.setBorderTop(BorderStyle.MEDIUM); //应用字体 defaultCellStyle.setFont(defaultFont); return default…

linux 网卡启动报Cannot find device eth0解决方法
type: item
date: 2020-12-04T11:48:00+08:00
description: 原因是这样的：今天想给服务器设置一个快照，关机、拍摄快照、拍摄完成、开机，ssh无法连接。。。使用救援链接登录发现网卡挂了，没起来journalctl -ex原因是什么没搞懂啊。解决方法：禁用重命名修改/etc/default/grub 把GRUB_CMDLINE_LINUX_DEFAULT="quiet" 修改为GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0" update-grub reboot解决！

Ubantu&Debian 修改时区和语言
type: item
date: 2020-12-03T09:15:00+08:00
description: 修改时区：timedatectl list-timezones # 查看所有时区 timedatectl set-timezone Asia/Shanghai # 设置时为亚洲/上海 date -R 修改语言：locale -a # 查看本机安装的语言 dpkg-reconfigure locales # 上下键滑动，空格键选择语言包，回车确认 设置语言，选择上 [*] zh_CN.UTF-8 UTF-8，确认，选择zh_CN.UTF-8为默认区域设置，确认 重启系统即可 安装输入fcitx法：apt install fcitx -y

Debian 9安装桌面与远程连接
type: item
date: 2020-12-03T08:48:00+08:00
description: 一、准备1）Debian9 最小化安装的机子一台2）服务商可以设置快照的话尽量设置一个快照二、安装桌面使用ssh连接工具登录拥有管理员权限的账户1）安装基础版gnomeapt -y install x-window-system-core gnome-core 2）允许root登录修改/etc/gdm3/daemon.conf文件，在[security]下增加一行AllowRoot = true 修改/etc/pam.d/gdm-password文件，注释掉auth required pam_succeed_if.so user != root quiet_success 3）重启sync&reboot 三、安装远程连接1）安装xrdpapt -y install xrdp 2)设置启动权限dpkg-reconfigure xserver-xorg-legacy 选择 anybody 四、远程连接使用win自带远程连接工具mstsc输入ip或域名直接连接即可win10家庭版不自带mstsc，可以通过安装补丁解决

安装ServerStatus-Hotaru手动配置HTTP服务问题及解决
type: item
date: 2020-12-01T16:55:00+08:00
description: 安装ServerStatus时，因为服务器上安装了nginx，所以想手动配置http服务，但是选择手动配置HTTP之后ServerStatus服务启动不起来。状况：已配置虚拟主机，根目录为：/usr/local/ServerStatus/webServerStatus服务启动失败访问域名，nginx提示403解决过程：我去/usr/local/ServerStatus/web目录查看文件，发现里面还套有一层文件夹，即正确的网站根路径为：/usr/local/ServerStatus/web/web所以修改虚拟主机的根目录为：/usr/local/ServerStatus/web/web重载nginx，发现能访问监控网站了，但是ServerStatus的服务还没解决。去GitHub查看ServerStatus-Hotaru的源项目BotoX/ServerStatus，发现有一些启动配置，其中有WEB_BIN的配置查看ServerStatus的管理脚本，找到启动命令为：/etc/init.d/status-server start编辑status-server，修改 WEB_BIN="/usr/local/ServerStatus/web" 为 WEB_BIN="/usr/local/ServerStatus/web/web"再次尝试启动，成功！添加节点信息，并且安装服务端，好了~所以，别人封装好的脚本未必是最好的，毕竟环境不完全一样，这就体现docker的好处了哈哈或者我想是不是把/usr/local/ServerStatus/web/web内的文件移动到/usr/local/ServerStatus/web，也就是去除多套的一层文件夹，而不修改虚拟主机的根目录和启动文件，也能启动ServerStatus的服务呢。这个没有尝试

linux socks代理
type: item
date: 2020-12-01T15:41:00+08:00
description: 国内的小鸡下github的东西是真的慢,有时候还下不了...,遂学习了下在linux下使用代理前提:本机配置xray客户端,且设置socks系统代理wget仅支持http代理，利用xray提供的socks代理（酸酸、酸酸乳、vtoray也一样），安装tsocks工具，可以让其他程序使用socks代理。对于apt系的linux，直接安装即可。apt install tsocks修改/etc/tsocks.conf配置文件:server = 127.0.0.1 # 服务地址，本机直接使用环回地址。 server_type = 5 server_port = 1089 # socks监听的端口使用时,直接套上tsocks即可使用代理。例如 wget、git：tsocks wget ... tsocks git...试一下tsocks wget https://github.com/vaxilu/x-ui/releases/download/0.3.2/x-ui-linux-amd64.tar.gz

linux安装trojan客户端
type: item
date: 2020-12-01T14:35:00+08:00
description: 国内的机子，外网访问真是太慢了，GitHub部署个项目，下载个文件，几kb的跑，忍不了！所以研究了下trojan的客户端。一、准备1）国内任意linux vps2）trojan连接信息二、部署trojan client可以选择编译安装或者下载编译好的二进制包安装，这里就二进制包安装。1）下载打开 https://github.com/trojan-gfw/trojan/releases ，下载编译好的trojan-x.xx.x-linux-amd64.tar.xz的最新xz包使用wget下载（或者本机下载好再上传到vps，毕竟就是要解决下载慢的问题）wget --no-check-certificate https://github.com/trojan-gfw/trojan/releases/download/v1.16.0/trojan-1.16.0-linux-amd64.tar.xz 2）解包这个包不是tar.gz的包，不能使用tar zxvf解压xz -d trojan-1.16.0-linux-amd64.tar.xz tar xvf trojan-1.16.0-linux-amd64.tar # 得到trojan文件夹 ls -l 3）安装mv trojan /opt/sources/trojan-1.16.0 # 移动，方便管理 ln -s /opt/sources/trojan-1.16.0/ /opt/services/trojan # 创建软连接 cd /opt/services/trojan ls -l cp config.json config.json_bak # 备份配置文件 vim config.json # 编辑配置文件 参考配置文件，具体查看官网，https://trojan-gfw.github.io/trojan/config，需要填写trojan的连接信息。{ "run_type": "client", # 运行模式 "local_addr": "127.0.0.1", # 监听地址 "local_port": 1080, # 监听端口 "remote_addr": "xxxx.xxxx", # trojan服务域名 "remote_port": 443, # trojan服务端口 "password": [ # 密码，可以写多个，逗号分隔，第一个生效 "xxxxxxxx" ], "log_level": 1, "ssl": { "verify": true, "verify_hostname": true, "cert": "", "cipher": "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA", "cipher_tls13": "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", "sni": "", "alpn": [ "h2", "http/1.1" ], "reuse_session": true, "session_ticket": false, "curves": "" }, "tcp": { "no_delay": true, "keep_alive": true, "reuse_port": false, "fast_open": false, "fast_open_qlen": 20 } }好了，保存，前台运行测试./trojan -l ./trojan.log -c ./config.json # -l 日志文件路径 # -c 配置文件路径 ssh打开另一个连接窗口查看是否监听127.0.0.1:1080ss -tlnp | grep 1080安装完成！三、后台运行与自启动回到第一个窗口，退出前台ctrl+c 1）写一个新的systemd配置文件vim trojan.service 写入以下配置[Unit] Description=trojan A…