查找修改时间在指定区间的文件并打包

#!/bin/bash
# find file and tar
# joyousphper@gmail.com
# find_and_tar.sh

read -p "Please enter a search path (eg:/root/) >" search_path
if [ -d $search_path ];then
	echo "find path $search_path"
else
	echo "error: $search_path is not a directory"
	exit 0
fi
read -p 'Please enter a start time (eg:201404131600.00) >' start_time
`touch -t ${start_time} ${search_path}start`
read -p'Please enter a end time  (eg:201404131900.00) >' end_time
`touch -t ${end_time} ${search_path}end`
read -p'Please enter a save path (eg:/back/) >' save_path
if [ -d $save_path -a -w $save_path ];then
	echo "save path $save_path"
else
	echo "error: $save_path unable to write"
	exit 0
fi
read -p 'Please enter a file name . >' file_name

`find $search_path -newer ${search_path}start -a ! -newer ${search_path}end -exec tar rvf ${save_path}${file_name} -X ext.txt '{}' \; 1>out.log 2>error.log`

使用说明:

1.脚本需要有执行权限

2.目录需要带上/

3.输入时间格式必须是(201404140400.00),这表示2014年4月14日,4点整

4.保存目录需要有写入权限

5.在shell执行的当前目录内建立ext.txt文件

6.在ext.txt中写需要排除的文件(一行一个,这样打包就不会将这些文件打包在内)

附件:find_and_tar

Shell基础知识

1.变量首个字符必须为字母或者下划线,变量赋值等号前后不能有空格
2.可以用${hello}来表示取出变量hello的值
3.let “var+23″可以执行数学运算,这个时候变量前不带$;$[ no1 + no2 ]或者$[ $no1 + 5];可以用(());可以试用bc进行高级计算
4.$1可以获取输入的命令行的第一个参数,$@可获取所有的参数,$#表示包含参数的个数,很少用$*获取所有参数(整体字符串)
5.可以用单引号类防止变量扩展(eg:echo ‘*.jpg’)这样只会输出*.jpg而不是去匹配
6.sh -x shellscript可以执行调试模式,这样会显示变量的值,可以在/bin/bash -xv就可以启动调试了
7.获取变量值的长度${#var}
8.$0和$SHELL获取当前是哦那个的shell
9.文件描述符0,1,2分别表示标准输入stdin,标准输出stdout,标准错误stderr
10.数组可以用arr=(1 2 3 4 5)也可以用arr[0]=’apple’,echo ${arr[0]},打印所有${arr[*]},数组长度${#arr[*]};关联数组$temp_arr[name]=’Joyous’,echo “${temp_arr[name]}”;列出数组索引${!temp_arr[*]}或者${!temp_arr[@]}
11.比较运算中-gt表示大于;-lt表示小于,-ge表示大于或者等于,-le表示小于或者等于,-eq表示等于,-ne表示不等
12.文件系统判断
[ -f $file_name ] 如果给定的file_name是正常的文件路径或者文件名,返回为真
[ -x $file ]$file有执行权限返回为真
[ -d $dir_name ]如果是目录则返回为真
[ -e $var ] 如果文件存在返回为真
[ -w $var ] 如果文件可以写入返回为真
[ -r $var ] 如果文件可以读取返回为真
等等
13.字符串比较一般要用两个中括号来
[[ -n $str ]] $str非空则返回真
[[ -z $str ]] $str为空则返回真

Redhat使用yum

1.红帽中用yum可能提示这样的错误:

This system is not registered with RHN

那么可以进入/etc/yum.repos.d/

然后执行

wget http://blog.phpfs.com/wp-content/uploads/2014/04/CentOS-Base.repo_.zip

解压到/etc/yum.repos.d/

更改名字为rhel-debuginfo.repo

然后再执行yum就可以用了~~~

 

附件:CentOS-Base.repo

nginx配置https

1、生成RSA密钥的方法

openssl genrsa -des3 -out privkey.pem 2048
这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成:
openssl genrsa -out privkey.pem 2048
建议用2048位密钥,少于此可能会不安全或很快将不安全。

2、生成一个证书请求
openssl req -new -key privkey.pem -out cert.csr
这个命令将会生成一个证书请求,当然,用到了前面生成的密钥privkey.pem文件
这里将生成一个新的文件cert.csr,即一个证书请求文件,你可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。

如果是自己做测试,那么证书的申请机构和颁发机构都是自己。就可以用下面这个命令来生成证书:
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
这个命令将用上面生成的密钥privkey.pem生成一个数字证书cacert.pem

3.配置nginx

server
{
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/cacert.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
server_name blog.phpfs.com;
index index.html index.htm index.php;
root /home/joyous;
}

Ubuntu配置网络

1.静态配置(编辑文件)
/etc/network/interfaces
内容如下:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static#static 可以修改dhcp就是动态获取IP,那么下面的就可以注释掉
address 192.168.192.135
netmask 255.255.255.0
broadcast 192.168.192.255
geteway 192.168.192.10

2.图形界面提示”未找到合法的活动连接”
修改
/etc/NetworkManager/NetworkManager.conf

managed=true

3.DNS配置
/etc/resolv.conf
nameserver 8.8.8.8

PS:配置文件是永久型的,图形界面修改的不会保存在interfaces