/bin/lnmp
分析
|
|
Start
/bin/lnmp
分析
|
|
今天心血来潮想复习java了,毕竟好久忘记了,这里有个编译语言的分类,用来记录复习的每一章java吧。
也给自己一个期限,2017年前完成(20171015 ~ 20171231)
|
|
新建文件/etc/fail2ban/jail.local
用来配置其安全规则
sudo vi /etc/fail2ban/jail.local
|
|
|
|
注意,如果你停止了Fail2ban 服务,那么所有的IP地址都会被解锁。当你重启 Fail2ban,它会从/etc/log/secure(或 /var/log/auth.log)中找到异常的IP地址列表,如果这些异常地址的发生时间仍然在禁止时间内,那么Fail2ban会重新将这些IP地址禁止。
|
|
rar是一个商业软件,但有时候我们需要在linux 下做批量操作,这时候就需要用到命令,下面我们来说说rar、unrar在命令行下的一些操作,希望对你们有所帮助!
winrar从v5开始,只提供window和linux版的,而linux版只提供二进制文件,这样我们就可以直接在命令行进行操作。比如在terminal下压缩文件a.xls到文件 a.xls.rar中,语法如下:
rar a ‘a.xls.rar’ ‘a.xls’ #
使用起来非常简单,类似linux下的tar
参考:
其他常用的rar语法:
|
|
WinRAR, RAR for Unix and OS X now use the same registration key format, so you can use the same key with current WinRAR and RAR versions for all mentioned platforms.
so Yes, it is possible.
Further, it also states where to copy the key:
If you use RAR/Unix and RAR for OS X, you should copy rarreg.key to your home directory or to one of the following directories: /etc, /usr/lib, /usr/local/lib, /usr/local/etc. You may rename it to .rarreg.key or .rarregkey, if you wish, but rarreg.key is also valid.
参考:https://superuser.com/questions/1089501/how-to-transfer-winrar-key-to-linux
分享我的rarreg.key
:
|
|
然后复制或添加软链接到配置目录,你可能要执行这样的命令:
homebrew是mac下非常不错的包管理软件,类似centos下的yum吧,下面说说他的安装及基础使用。
默认的,homebrew是使用github作为代码源,同步的时候会比较慢,所以就有了备选方案 - 使用USTC提供的homebrew镜像。具体操作可以看这篇文章《替换及重置Homebrew默认源》
|
|
brew install inetutils
: inetutils里面包含ftp工具,具体可以看一看GNU软件包列表,里面介绍了inetutils网络工具组包含了ftp,telnet,rsh,rlogin,tftp。所以,mac只要安装inetutils就可以了。Linux chattr命令用于改变文件属性。通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。
这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
语法
chattr [-RV][-v<版本编号>][+/-/=<属性>][文件或目录…]
参数
-R 递归处理,将指定目录下的所有文件及子目录一并处理。
-v<版本编号> 设置文件或目录版本。
-V 显示指令执行过程。
+<属性> 开启文件或目录的该项属性。
-<属性> 关闭文件或目录的该项属性。
=<属性> 指定文件或目录的该项属性。
实例
配置防火墙规则文件: /etc/sysconfig/iptables
启动和关闭防火墙: service iptables restart|start|stop
在防火墙中,来往的数据流被称为IP压缩(本文下面也称数据流为IP压缩)。防火墙有三条缺省规则链来过滤IP压缩,分别为:
INPUT:所有以主机为目的地的IP压缩
OUTPUT:所有以主机为源的IP压缩
FORWARD:所有经过主机,但是既不是以主机为源,也不是以主机为目的地的压缩
而我们最关注的是INPUT规则,这样可以屏蔽一些黑客行为,或者局域网共享。下面以centOS 6.5的默认规则为例子,讲解下各条规则大概的意思:
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-m 选项: 装入一个模块(state)。state 模块能够查看一个压缩并判断它的状态是 NEW、ESTABLISHED 还是 RELATED。
NEW 指內进的压缩属于不是由主机主导的新增连接。
ESTABLISHED 及 RELATED 指內进的压缩隶属于一条现存的连接,或者与现存的连接有关系。
这条规则的意思是:以本主机为目的地的IP压缩,如果隶属于现有的连接,则接受(accept)
-A INPUT -p icmp -j ACCEPT
表示接受icmp协议的IP压缩,icmp协议主要是ping,很多同学在局域网能ping通一台机器,但是无法通过web访问,就是因为开启了icmp协议,但是http等协议没有开,后面会讲解如何解决这个问题
-A INPUT -i lo -j ACCEPT
这条规则表示接受那些来自本机(localhost或者127.0.0.1的IP压缩)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
表示表示接受不是由本机引导的新增的,基于端口号22的连接(句子有点长,仔细体会哈)。22端口是ssh连接用的,所以如果你想远程操作机器,需要开启端口22
-A INPUT -j REJECT –reject-with icmp-host-prohibited
表示拒绝来自已经被禁止的主机的icmp的IP压缩
-A FORWARD -j REJECTED –reject-with icmp-host-prohibited
表示拒绝经过本机且源自那些已经被禁止的主机的icmp的IP压缩
下面再详细说说各个参数的意思:
-A:表示添加一条规则(add)
相应的还有:-P(设置规则的缺省值,比如-P INPUT ACCEPT表示没有以本机为目的地的IP压缩默认是接受的)
-F(清楚所有存在的规则,好添加新的规则)
-j:表示满足规则执行的相应的操作,意为jump,比如 ……-j ACCEPT就表示满足相应的规则就接受
-i:界面的意思(interface),lo是本机的意思(localhost)
注意,编辑完iptables文件之后,使用service iptables restart重启防火墙,可以使用命令:iptables -L查看规则是否生效
或者使用命令行
(1)重启后永久性生效:
开启:chkconfig iptables on
关闭:chkconfig iptables off
(2)即时生效,重启后失效:
开启:service iptables start
关闭:service iptables stop
比如局域网中搭建了一台centOS作为服务器,并且建立了LAMP或者LNMP环境,想让局域网中的其他人都能通过web访问该机器,那么先得固定机器的IP地址,将BOOTPROTO改成static,然后将IPADDR设置一个固定的IP(比如192.168.1.22),在设置子网掩码NETMASK(比如255.255.255.0),NETWORK和GATAWAY和DNS等也设置好,然后就是信任来自本局域网的访问了,添加下面的规则到iptables中,再重启防火墙即可。具体如何配置网络看这里:CentOS网络配置详解
-A INPUT -i eth0 -j ACCEPT #eth0是你的网卡号,用ifconfig -a命令查看你自己的网卡号
或者你想信任来自一系列IP的访问,可以用斜线记法规定IP的范围,比如:
-A INPUT -s 192.168.1.0/24 -j ACCEPT #即接受来自192.168.1.0-192.168.1.255的ip区段的IP压缩
或者为每一个IP添加一条规则,但是当IP比较多时会很麻烦,比如
-A INPUT -s 192.168.1.22 -j ACCEPT
打开80端口的规则
-A INPUT -p tcp –dport 80 -j ACCEPT
who /var/log/wtmp
cat /var/log/secure
: 查看最近有谁登陆过服务器,也可以看ssh登陆失败日志cat /var/log/lastlog
lastlog文件在每次有用户登录时被查询。可以使用lastlog命令检查某特定用户上次登录的时间,并格式化输出上次登录日志/var/log/lastlog的内容
另外,可加一些参数,例如,”last -u 102”命令将报告UID为102的用户;”last -t 7”命令表示限制为上一周的报告。
|
|
hostnamectl set-hostname fastdfs-1
要永久修改主机名,你可以修改静态主机名:hostnamectl --static set-hostname [主机名]
通过文件配置主机名:
需要修改2个文件: /etc/hostsname
和 /etc/hosts
vi /etc/sysconfig/network
修改项目:HOSTNAME
sysctl kernel.hostname=your.name
配置文件地址:/etc/sysconfig/i18n
语法:
if ….; then
….
elif ….; then
….
else
….
fi
[ -f “somefile” ] :判断是否是一个文件
[ -x “/bin/ls” ] :判断/bin/ls是否存在并有可执行权限
[ -n “$var” ] :判断$var变量是否有值
[ “$a” = “$b” ] :判断$a和$b是否相等
-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符特殊文件为真
-b file 文件为块特殊文件为真
-s file 文件大小非0时为真
-t file 当文件描述符(默认为1)指定的设备为终端时为真
含条件选择的shell脚本 对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包括比较运算、判断文件是否存在等。基本的if条件命令选项有: - eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f “filename” ])
-d — 检查目录是否存在
几乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。 ##################################################################
判断文件是否存在
#!/bin/sh
YACCESS=date -d yesterday +%Y%m%d
FILE=”access_$YACCESS.log.tgz”
cd /data/nginx/logs
if [ -f “$FILE” ];then
echo “OK”
else
echo “error $FILE” > error.log
mail -s “$FILE backup fail” xxxx@yyyy.com <error.log
fi
###############
#!/bin/sh
#
DIR=/data/img_cache
DAY=date +"%Y-%m-%d %H:%M"
NUM=ls $DIR |wc -l
DIRNAME=ls $DIR| grep leveldb | head -n 1 | awk '{print $NF}'
if [[ $NUM -gt 3 ]];then
rm -rf $DIR/$DIRNAME
echo “———$DAY—-($DIR)———————–” >> /tmp/img_cache.log
echo “$DIRNAME Deleted successful” >> /tmp/img_cache.log
fi
补充:文件测试操作:
返回true,如果:
-e 文件存在
-a 文件存在(已被弃用)
-f 被测文件是一个regular文件(正常文件,非目录或设备)
-s 文件长度不为0
-d 被测对象是目录
-b 被测对象是块设备
-c 被测对象是字符设备
-p 被测对象是管道
-h 被测文件是符号连接
-L 被测文件是符号连接
-S(大写) 被测文件是一个socket
-t 关联到一个终端设备的文件描述符。用来检测脚本的stdin[-t0]或[-t1]是一个终端
-r 文件具有读权限,针对运行脚本的用户
-w 文件具有写权限,针对运行脚本的用户
-x 文件具有执行权限,针对运行脚本的用户
-u set-user-id(suid)标志到文件,即普通用户可以使用的root权限文件,通过chmod +s file实现
-k 设置粘贴位
-O 运行脚本的用户是文件的所有者
-G 文件的group-id和运行脚本的用户相同
-N 从文件最后被阅读到现在,是否被修改
f1 -nt f2 文件f1是否比f2新
f1 -ot f2 文件f1是否比f2旧
f1 -ef f2 文件f1和f2是否硬连接到同一个文件
二元比较操作符,比较变量或比较数字
整数比较:
-eq 等于 if [ “$a” -eq “$b” ]
-ne 不等于 if [ “$a” -ne “$b” ]
-gt 大于 if [ “$a” -gt “$b” ]
-ge 大于等于 if [ “$a” -ge “$b” ]
-lt 小于 if [ “$a” -lt “$b” ]
-le 小于等于 if [ “$a” -le “$b” ]
< 小于(需要双括号) (( “$a” < “$b” ))
<= 小于等于(…) (( “$a” <= “$b” ))
大于(...) (( "$a" > "$b" ))
= 大于等于(…) (( “$a” >= “$b” ))
字符串比较:
= 等于 if [ “$a” = “$b” ]
== 与=等价
!= 不等于 if [ “$a” = “$b” ]
< 小于,在ASCII字母中的顺序:
if [[ “$a” < “$b” ]]
if [ “$a” \< “$b” ] #需要对<进行转义
大于
-z 字符串为null,即长度为0
-n 字符串不为null,即长度不为0
在“判断条件”这个字段里可以直接写入bash下的命令、也可以写成条件测试
在判断条件中要进行条件测试:
“[ expression ]”一个中括弧里写表达式,
“[[ expression ]]”两个中括弧里写上表达式
“test expression”
“bash命令”
整数测试
expression:[ 数值1 比较符 数值2 ]
比较符一般有以下几种:
大于:-gt(greater than),大于等于:-ge(greater equal),小于:-lt(less than),小于等于:le(less equal),不等于:-ne(not equal)
字符测试
"\>":大于
"\<":小于
"=="或者"=":等于
"=~":判断左边的字符串能否被右边的模式所匹配,通常用于[[ expression ]]
单目测试:
-z:格式为"[ -z $STRING ]",表示为空值时则为真,不为空值时则为假
-n:格式为"[ -n $STRING ]",表示为空值时则为假,不为空值时则为真
文件、目录测试
-d:测试目录是否存在
-f:测试档案是否存在
当有多个测试条件时,我们可以把这些测试条件组合起来使用:
-a:逻辑与
-o:逻辑或
!:逻辑非,这是单目操作
当是bash命令之间组合测试时,则:
&&:逻辑与
||:逻辑或
!:逻辑非
|
|
|
|
|
|
此脚本在centos5.8上不tar不能调用xz压缩工具进行工作,man tar发现选项里没有“J”选项,但在centos 6.2上能正常工作,应该是tar版本问题。