1.远程桌面
1.1.CentOS7无法使用xdmcp
2.LVM配置
2.pv需要格式化
1.CentOS7:mkfs.xfs -f /dev/sdb1
3.CentOS7扩展lv:xfs_growfs
4.分区后需执行partprobe1.CentOS6
5.CentOS7中cfdisk中1g约等于1073M,CentOS6中1092M
6.lvextend -l +XX(PV中的PE数)
3.查看pid:pgrep -f name
kill 掉该进程:pkill -f name
4.使用crontab时要注意PATH是否正确
5.更改xshell字符集
6.centos下配置sftp且限制用户访问目录
7.centos7管理防火墙
8.查看端口使用情况:netstat -apn|grep <端口号>
9.建立多级目录:mkdir -p
11.批量重命名文件
1.rename _aerospace.mp4 _20170511_aerospace.mp4 *_aerospace.mp4
12.查找命令
13.lsyncd同步目录
1.参考1
14.gzip是直接将原文件压缩不会保留原文件(没搞明白前我删了不少日志!!!)
15.CentOS7查询服务是否开机启动:
1.systemctl is-enabled xxx.service
2.ls /etc/systemd/system/multi-user.target.wants/
16.大于2T磁盘分区
17.查看文件夹大小:du -h --max-depth=1 或者du -sh *
1.Linux df 命令不更新磁盘数据空间使用情况的解决办法
2.删除某文件时间前的文件含该文件find . -type f ! -newer XX | xargs rm -f
18.Ubuntu更改系统时区:dpkg-reconfigure tzdata
1.此方法可以有效更改jvm读取的系统时间
19.shell要特别注意什么时候需要空格,什么时候不需要空格
1.重启tomcat脚本
1.sh /home/apache-tomcat-7.0.10/bin/restart.sh为什么会报错,而cd /home/apache-tomcat-7.0.10/bin/然后sh restart.sh就不报错呢?而且sh /home/restart.sh也不报错,我晕!!!
2.使用crontab执行.sh会获取进程 pid 时,会出现多个 pid ,多出来的几个进程实际上是子 Shell 的临时进程,注意grep时过滤掉
#!/bin/sh
source ~/.bash_profile
tomcat_pid=`ps -ef|grep "/home/apache-tomcat-7.0.10" |grep -v "grep"|grep "/usr/bin/java"|awk '{print $2}'`
echo `date` "tomcat pid:${tomcat_pid}."
if [ -z "${tomcat_pid}" ]
then
/home/apache-tomcat-7.0.10/bin/startup.sh
echo `date` "tomcat is starting"
tomcat_pid=-1
else
/home/apache-tomcat-7.0.10/bin/shutdown.sh
echo `date` "tomcat is shuting down"
fi
new_tomcat_pid=-1
for (( sleep_time=0; sleep_time<6; sleep_time++ ))
do
sleep 2s
new_tomcat_pid=`ps -ef|grep "/home/apache-tomcat-7.0.10" |grep -v "grep"|grep "/usr/bin/java"|awk '{print $2}'`
echo `date` "new tomcat pid:${new_tomcat_pid}."
if [ -z ${new_tomcat_pid} ]
then
new_tomcat_pid=-1
fi
if [ -1 -eq "${tomcat_pid}" ]
then
if [ "${new_tomcat_pid}" -eq "${tomcat_pid}" ]
then
echo `date` "waiting for tomcat startup completely"
else
echo `date` "tomcat startup completely"
break
fi
else
if [ "${new_tomcat_pid}" -eq "${tomcat_pid}" ]
then
echo `date` "waiting for tomcat shutdown completely"
else
echo `date` "tomcat shut down completely"
break
fi
fi
done
if [ "${tomcat_pid}" -ne "${new_tomcat_pid}" ]
then
if [ "${tomcat_pid}" -ne -1 ]
then
/home/apache-tomcat-7.0.10/bin/startup.sh
echo `date` "start up tomcat agian"
fi
else
echo `date` "tomcat startup/shutdown fail"
fi
20.配置代理
1.全局代理配置完了后需要执行命令
source 配置文件
2.全局代理中剔除不想通过代理的内容1.
export no_proxy=".mylan.local,.domain1.com,host1,host2"
3.设置jvm使用系统代理
1.在/etc/profile中追加export JAVA_TOOL_OPTIONS+=" -Djava.net.useSystemProxies=true"
1.验证生效:
java -version
21.配置NTP
1.配置文件是/etc/ntp.conf
2.局域网配置
1.centos7无法启动clamav
2.yum安装
3.扫描命令clamscan -r --bell -i / -l /tmp/clamav.log
23.后台运行
1.
nohup sh export_old_data.sh 2017-10 > out_2017_11_19.log 2>&1 &
24.CentOS7设置/etc/init.d/开机启动
25.win7硬盘安装centos7
1.参照1
2.参照2
3.参照3
4.参照4
5.注意确认自己到底是hd几(命令行下使用root确定)
6.安装时/boot不能设为xfs格式
title CentOS 7
root (hd0,6)http://www.jianshu.com/p/c18d5347c9b6
kernel (hd0,6)/isolinux/vmlinuz linux repo=hd:/dev/sda7:/
initrd (hd0,6)/isolinux/initrd.imghttp://www.jianshu.com/p/c18d5347c9b6
26.切换鼠标左右键
27.可以利用路由器的端口转发实现访问局域网内的服务器
1.更改ssh端口
28.使用ssh隧道+redsocks实现全局外网访问特定ip内网
1.iptables -t nat -A OUTPUT -d {dest ip} -p tcp -j REDSOCKS
2.iptables -t nat -A REDSOCKS -p tcp -j REDIRECT --to-ports 12345
4.参考3
30.配置iptables
31.win10安装ubuntu
1.参考1
2.grub安装失败解决方法
3.EasyUEFI
4.参考2
32.[增加swap]
33.备份数据
- 注意需
chmod 600 /etc/rsyncd.secrets
,以及搭建rsync server端
#!/bin/bash
BAK_TIME=`date +%Y%m%d`
BAK_PATH=XXX
DSTHOST=XXX
#删除本地的备份文件
rm -rf "$BAK_PATH"/*.dmp
#获取待下载文件名
XXX_DMP=`rsync rsync_backup@"$DSTHOST"::XXX/"$BAK_TIME"*_XXX.dmp --password-file\=\/etc\/rsyncd.secrets | tail -1|awk '{print $5}' `
#下载备份文件到本地
rsync -av rsync_backup@"$DSTHOST"::XXX/"$XXX_DMP" "$BAK_PATH"/ --password-file=/etc/rsyncd.secrets
34.crond中log带时间戳
1.log_
date +\%Y\%m\%d
.log
35.centos epel源
36.利用awk实现类似group by功能
1.
cat test.txt |grep -E 'key'|awk -F'&' '{print $2,$3}'|awk '{arr[$2]++}END{for (a in arr) print a,arr[a]}'| sort -nk 2
37.安装vsftpd
1.使用虚拟用户
2.需要设置文件夹权限
3./etc/pam.d/vsftpd原有的注释掉
4.限制上传下载
anon_upload_enable=YES 可上传 download_enable = YES 不能下载
5.使用ftp命令测试open ip [port]
38.监控cpu和硬盘
#!/bin/bash
echo "begin monitor at `date`"
. /etc/profile
. ~/.bash_profile
osVersion=`rpm -q --queryformat '%{VERSION}' centos-release`
if [ "7" -eq $osVersion ]
then
ipAddr=`ip addr | grep "eth0" |grep "inet" |cut -d " " -f6| cut -d "/" -f1`
else
ipAddr=`ifconfig eth0 |grep "inet addr"| cut -f 2 -d ":"|cut -f 1 -d " "`
fi
hostName=`hostname --fqdn`
phoneList="电话号码1","电话号码2"
function checkCPU(){
local cpuLoad=`uptime | awk -F',' '{print $5}'`
local procNum=`nproc`
echo "processer num:$procNum"
echo "cpu load:$cpuLoad"
local cpuLoadAVG=`awk 'BEGIN {printf "%.2f\n",'"$cpuLoad"'/'"$procNum"'}'`
echo "cpu load average:$cpuLoadAVG"
local CPU_STANDARD=0.85
if ((`expr $cpuLoadAVG \> $CPU_STANDARD`))
then
echo 'cpu will overload'
curl --connect-timeout 10 --max-time 10 --header "Content-Type: application/x-www-form-urlencoded; charset=utf-8" --request POST --data-urlencode "action=sendMsgManager" --data-urlencode "msg={"content":"【警告】$hostName($ipAddr)CPU即将过载","phones":[$phoneList]}" 短信网关地址
else
echo 'cpu is normal'
fi
}
function checkDisk(){
local DISK_STANDARD='90%'
echo 'disk occupancy rate:'
df -Ph|tail -n +2 | awk '{print $5,$6}'
df -Ph|awk 'NR > 1 {print $5, $6}' | while read arg1 arg2;do
if [ $arg1 \> $DISK_STANDARD ]
then
echo "$arg2 will be full"
curl --connect-timeout 10 --max-time 10 --header "Content-Type:application/x-www-form-urlencoded; charset=utf-8" --request POST --data-urlencode "action=sendMsgManager" --data-urlencode "msg={"content":\"【警告】$hostName($ipAddr)目录$arg2空间即将不足\","phones":[$phoneList]}" "短信网关地址"
fi
done
}
function main(){
checkCPU
checkDisk
}
main
echo "end monitor at `date`"
- 64位操作系统pam配置需加/lib64/security/
2.SELinux只需设置setsebool -P ftpd_full_access on
3.限制用户离开根目录需配置chroot_list_file=/etc/vsftpd/chroot_list
4.参考2
40.视频压缩
1.
ffmpeg -threads 2 -y -i input.mp4 -c:v libx264 -crf 28 -preset:v fast -c:a copy output.mp4
41.查找指定日期的文件
1.
find . -type f \( -newermt '2018-11-10 00:00' -a -not -newermt '2018-11-06 23:59' \)
42.递归查找指定文件带文件路径
1.
find $PWD | xargs ls -td | grep mp4$
43.ssh免密登录
1.在机器A执行
ssh-keygen -t rsa
(一路回车即可),在/机器A当前用户名/.ssh下生成id_rsa和id_rsa.pub
2.在机器A执行ssh-copy-id 机器B用户名@机器BIP
,在/机器B指定用户名/.ssh下authorized_keys文件追加机器A的id_rsa.pub文件内容
3.在机器A ssh 机器B不再需要机器B密码
44、ssh限制ip登录
1./etc/hosts.allow配置
sshd:IP:allow
,支持前缀;/etc/hosts.deny配置sshd:ALL
45、chrony时间同步
1.客户端配置
server x.x.x.x iburst
46、安装mysql
1.centos8 yum install前需执行
yum module disable mysql
2.更改/etc/my.cnf中目录,需注意目录权限为mysql mysql
47、centos7 x11 gui中输入中文
1.在远程终端运行
ibus engine libpinyin
,按shift切换为英文,如ibus未启动,需运行ibus-setup
,参照
1、域账户
set smtp-auth-user=${domain}/${username}
49、Arthas
1、被监控服务器启动
java -jar arthas-boot.jar ${pid}
1、扫描上传maven项目
mvn sonar:sonar -Dsonar.host.url=XX -Dsonar.login=XX -Dsonar.projectKey=XX
2、扫描上传.net项目
cd C:\workspace\demo
D:\software\sonar-scanner-msbuild-5.0.4.24009-net46\SonarScanner.MSBuild.exe begin /k:"demo" /d:sonar.host.url="XXX" /d:sonar.login="XX"
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MsBuild.exe" /t:Rebuild
D:\software\sonar-scanner-msbuild-5.0.4.24009-net46\SonarScanner.MSBuild.exe end /d:sonar.login="XX"
51、elasticsearch重启,如用命令行重启不能用root用户
curl -XPUT -H "Content-Type: application/json" -uX:X http://X:9200/_cluster/settings -d'
{
"transient" : {
"cluster.routing.allocation.enable" : "none"
}
}'
52、Jenkins配置Windows节点
53、logstash 配置日志gork%{TIMESTAMP_ISO8601:time}\s\[%{DATA:thread}\]\s%{LOGLEVEL:level}\s%{GREEDYDATA:content}
54、搭建k8s,参考1、参考2
55、用VisualVM远程监控Java进程
56、可访问外网的内网服务器,通过ngrok后台运行后,通过服务器用户名密码外网ssh登录,配合MobaXterm的Tunnel及Proxifier实现通过该内网服务器作为跳板机访问内网其他资源
57、scp从linux拷贝到安装openssh的windows(注意配置openssh的环境变量)需要有scp.exe
58、docker run指定sqlserver datasource url,因其中有分号,需使用单引号括起来,以防databaseName
在分号后被忽略,导致找不到数据库,sql报错
59、外网通过https通过nginx代理tomcat,程序如何通过request.getScheme()及request.getServerPort()获取https及443
1、nginx.conf配置
proxy_set_header X-Forwarded-Scheme https;
2、tomcat server.xml配置
<Valve className="org.apache.catalina.valves.RemoteIpValve"
remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto"
protocolHeaderHttpsValue="https"/>
60、树形显示目录下文件
tree -at -I "export" /usr/file_new > /tmp/file_new.txt
61、查找文件夹下最新文件(xargs: ls: terminated by signal 13提示不影响)
find /data/project/ -type f | xargs ls -lht | head -n 1