使用tar工具,可以把多个文件夹压缩成单个文件,方便备份和传输 考虑到以下集中情形 需要把多个文件和文件夹进行压缩合并 需要压缩某种类型的文件 需要排除某个或者某些文件夹 以下是示例: #Ubuntu下测试过,exclude后面的文件夹不能带引号 #试过绝对路径可以 #打包成/opt/tomcatwebapp.tar.gz文件 tar --exclude='/opt/exclude_folder' --exclude='./upload/folder2' -zcf /opt/tomcatwebapp.tar.gz …

2021-05-31 0条评论 2705点热度 0人点赞 admin 阅读全文

遇到一个比较诡异的问题,先说下环境: Tomcat服务器是运行在普通的user下的(非root帐号),例如tomcat用户帐号 我们在服务器上mount了NFS的存储(版本v4,/storage目录) Tomcat跑的一个程序调用: File file = new File("/storage/a.jpg");// /storage是一个nfs mount过来的文件夹 BufferedImage bufferedImage = // 得到bufferImage并处理的逻辑,省略 ImageIO.write(buff…

2021-05-30 0条评论 1168点热度 0人点赞 admin 阅读全文

工具方法,收藏备用,前端JS利用正则表达式判断所给String是否是有效的Email地址,如下方法: // 是正确的Email返回true,否则返回false function isValidEmail(email) { if(!email) { return false; } var regExp = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/; return regExp.test(email) }  

2021-05-29 0条评论 648点热度 0人点赞 admin 阅读全文

一般的web服务器(Nginx)或者应用服务器(Tomcat)的默认请求,都是有默认超时设置的(一般默认60秒),超过这个时间我们的代码没有返回结果,用户端就会收到报错:504 GatewayTimeout, Tomcat应用服务器里,也可能收到ClientAbortException(Borken Pipe)等错误。 有时候确实有一些请求比较耗时(例如生成统计报表等),在1分钟内还没有处理好,程序或者nginx那边就报错了,所以有时候需要为Nginx或者Tomcat修改默认超时设置。 nginx设置超时的设置是(…

2021-05-28 0条评论 3043点热度 0人点赞 admin 阅读全文

在IDEA里编辑、查看properties或者ini文件的时候,发现如果是中文,保存下,下次打开再去看,里面的中文都变成了\u开头的unicode了,如下: #\u8BBE\u7F6E sys.webBase = http://localhost:8080 IDEA也是好意,防止中文字符在其他操作系统下因为兼容性读取异常,不过现在的计算机基本上很少会出现不兼容中文的情况,变成了\u开头的unicode,反而影响了我们的阅读,这样很不直观,谁能一眼演出中文写的是什么?! 所以要怎么样才能让IDEA不把中文自动改成un…

2021-05-27 0条评论 769点热度 0人点赞 admin 阅读全文

在运行Shell命令的时候,需要在当前用户(例如root)下以其他用户身份(例如tomcat用户)运行某个命令,该如何做呢 简单点,可以直接用su tomcat或者su - tomcat切换到tomcat身份,然后再执行命令 如果要在某个脚本中,临时用其他身份运行呢?也很简单,可以用sudo或者su加上适当的参数来实现 我们以用当前登录的root,要以tomcat身份执行命令whoami(顾名思义,这时显示当前用户的命令,我是谁)为例: #使用sudo -u <USER> <COMMAND>…

2021-05-26 0条评论 719点热度 0人点赞 admin 阅读全文

先接触Java或者其他语言的程序员,如果刚接触Python的话,需要对Python的变量作用域特别了解下,可能对Python里的变量作用域有点不是很理解,比如如下的程序,如果用Java的思维来看,我也以为会输出x=20 x = 50 def func1(): x = 20 func1() print(x) #x=50还是x=20? 在函数定义中声明的变量,他们与在函数外使用的其它同名变量没有任何关系,即变量名称对函数来说是局部的。 类似函数def的还有class、lambda等语句也产生局部变量作用域 但是if、t…

2021-05-25 0条评论 875点热度 0人点赞 admin 阅读全文

Linux内置的crontab可以实现丰富的定时任务,功能很全面,可以通过crontab在指定的时间间隔(分钟、小时、日、月、周/星期及以上的任意组合)执行指定的程序(如Shell脚本等) crontab [-u username]    //省略用户表表示操作当前用户的crontab -e (编辑计划任务列表) -l (列出计划任务列表里的命令) -r (删除计划任务列表) 例如直接输入crontab -e进入当前用户的计划任务列表编辑状态,是常见的vim界面(编辑、保存等都是vim指定,这里不做介绍了)。 cr…

2021-05-24 0条评论 878点热度 1人点赞 admin 阅读全文

在Python里dict正好是和JSON相对应的,所以处理JSON基本上是dict和JSON String的互转 使用json.loads() import json ## 解析JSON String到dict student_json = '{"name": "Terry", "age": 18, "languages": ["English", "中文"]}' student_dict = json.loads(student_json) # 接下来就是dict的操作了 # Output: {'name': '…

2021-05-23 0条评论 817点热度 0人点赞 admin 阅读全文

Nginx转发给Tomcat的时候,发现一个问题,有一个名字叫User_Token的Header在Tomcat里始终获取不到,去掉nginx,直接让Tomcat接前端,就可以获取到这个Header 所以问题就应该出在Nginx这边,再仔细debug发现,如果把名字换成User-Token就可以了,所以就应该是这个User_Token下划线的问题。 经过搜索,在nginx里有一个配置,叫: 这个默认值是off,就是带下划线的Header是不被认可的,我们只要在server下把这个值打开就可以了: server { #…

2021-05-22 0条评论 942点热度 0人点赞 admin 阅读全文
1646566676883