0%

在Linux删除文件这种事经常会做,rm -rf,但是有时候手滑一下rm -rf * 删除不该删除的文件就麻烦,万一再多抖一下 rm -rf /* 想想就怕。为了防止手滑,需要禁用或者更改rm命令,修改方法各种各样,这里我选了一个我比较喜欢的方案,在这里记录一下。

实际就是重新定义 rm ,每次rm实际上执行的是 mv 命令,会将文件移动到回收站目录 ~/.trash

别名按照个人习惯自定义即可


保存完毕之后需要 source .bashrc

使用方法:
rm –删除文件
cattrash –查看回收站文件
unrm –恢复文件
cleartrash –清空回收站

需要添加到 .bashrc 的命令如下,贴到 .bashrc 最后面即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 初始化回收站目录
mkdir -p ~/.trash
# 设置别名
alias rm=trash
alias cattrash='ls ~/.trash'
alias unrm=undelfile
alias cleartrash=cleartrash
# 从回收站恢复指定文件到当前目录
undelfile()
{
mv -i ~/.trash/$@ ./
}
# 移动文件到回收站
trash()
{
mv $@ ~/.trash/
}
# 清空回收站
cleartrash()
{
read -p "清空回收站? [y/n]" confirm
[ $confirm == 'y' ] || [ $confirm == 'Y' ] && /bin/rm -rf ~/.trash/*
}

前些时候在Jenkins中运行shell脚本做自动化部署时,命令中Tomcat启动命令start.sh执行后显示 Tomcat started. 但实际Tomcat没有启动起来,后来找到原因把问题解决了,继续在这里做一下记录。

解决办法:在脚本执行之前添加环境变量:export BUILD_ID=dontkill
后面dontkill的值可以随便设置。

再次构建就不会再杀掉衍生进程了。

原因:百度查了下,是因为Jenkins在之执行构建时会设置一些环境变量,而这些环境变量也会被构建所衍生出来的进程继承。

在构建任务结束时,Jenkins会检查环境变量,如果查到有之前设置的环境变量的进程就会kill掉,我们可以在构建时改变BUILD_ID的值,从而让衍生进程在构建结束时不会被kill掉。

Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件或你要启用目录浏览虚拟主机的配置文件,在serverlocation 段里添加上autoindex on;来启用目录流量,下面会分情况进行说明。

另外Nginx的目录浏览有两个比较有用的参数,可以根据自己的需求添加:

autoindex_exact_size off;
默认为on,显示出文件的确切大小,单位是bytes
改为off后,显示出文件的大概大小,单位是KB或者MB或者GB

autoindex_localtime on;
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间

1、整个虚拟主机开启目录浏览
server段添加

1
2
3
4
location / {
autoindex on;
autoindex_localtime on; #之类的参数写这里
}

2、单独目录开启目录浏览
2.1:直接二级目录开启目录浏览

1
2
3
location /down/ {
autoindex on;
}

2.2:虚拟目录开启目录浏览

1
2
3
4
location /down/ {
alias /home/wwwroot/lnmp/test/;
autoindex on;
}

详细参照:http://nginx.org/en/docs/http/ngx_http_autoindex_module.html
需要注意rootalias的区别:
alias 设置的目录是准确的,可以理解为linuxln命令创建软连接,location就是软连接的名字。

阅读全文 »

最近在捣鼓服务器,准备做弄个论坛玩玩,之前域名在备案,所以一切都是用IP发布和访问的。
今天域名备案审核通过了,然后就把域名解析分发到论坛上。

解决了前置的各种修改IP为域名的问题后,发现论坛首页和后台都能正常访问,但是首页的版块,还有帖子链接都打不开了。
查找原因发现是所有的链接都自动带上端口号了,如下图(我80端口Nginx使用,Apache用的是9999端口)

之后就百度找原因呗,一搜发现还是有一部分有出现过这样的问题,这里不得不说下discuz官方论坛版主等管理人员不活跃,好多提问帖都是网友解答或者楼主自行解决的。

阅读全文 »

公司在开发过程中经常需要把代码发布到内网服务器,所以用Jenkins做一键构建。然后在构建我们的一个Maven项目时遇到了一个错误:

1
2
3
4
5
6
7
8
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project lano-cloud-zjxxw: Compilation failure -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR]
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

不明白什么意思,就各种搜索,网上有一些这类的错误贴,研究了下最后把问题解决了,但是说的太笼统,我这里自己做一下记录,当做是学习笔记吧。

这个错误的意思是Maven在构建时,查找JDK环境遇到了问题。我原来pom.xml中关于maven-compiler-plugin是这样配置的:

1
2
3
4
5
6
7
8
9
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>

这里需要给出JDK的具体地址:

1
2
3
4
5
6
7
8
9
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<fork>true</fork>
<executable>/usr/local/jdk8/bin/javac</executable>
</configuration>
</plugin>

保存之后,在服务器本地和Jenkins上,都能构建成功。