文件操作
rsync
主要用于备份和镜像,对差异文件做更新。第一次同步等同于拷贝。rsync $pdir/$fname $user@$host:$pdir/$fname
-a 归档拷贝
-v 显示拷贝过程
scp
scp $pdir/$fname $user@$host:$pdir/$fname
第一次使用建议用scp。
secure copy,scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
https://www.cnblogs.com/webno...
https://blog.csdn.net/u013381...
推到122服务器:
scp wordreport.jar root@172.16.112.122:/home/target
在122服务器拉133服务器文件:
scp root@172.16.112.123:/etc/wordreport.jar ./
还能在c服务器从a拷文件到b服务器哦
-r 递归拷贝
ssh
ssh root@172.16.112.123
从当前主机跳转到root用户下的172.16.112.123服务器
配置ssh免密码登录
自己ssh自己也需要密码,所以也得对自己设置一下
1.生成公钥、私钥对,用户主目录下执行
ssh-keygen -t rsa
-t 指定密钥类型是rsa(默认),还有dsa等
2.到$HOME/.ssh目录,生成了两个文件,id_rsa.pub是公钥(发给要访问本机的对象),id_rsa是私钥(保证在本机,不能给别人)。
新建文件authorized_keys,cat公钥内容到该文件cat id_rsa.pub>> authorized_keys
,并修改该文件夹权限为600(这样相当于对自己也分发了公钥)。
3.发布公钥到其他机器如124,使得本机可无密访问其他机器。
ssh-copy-id 172.16.112.124
124机器$HOME/.ssh下authorized_keys文件可查到可以免密登入它的机器的公钥。
用户有限定!登入的是同名用户。
ps:know_hosts记录曾经访问过它的ip
一个同步所有节点的脚本
#!/bin/bash
# 判断参数个数
if [$# -lt 1]
then
echo Not Enough Arguement!
exit;
fi
# 遍历集群所有机器 s1 s2 s2
for host in s1 s2 s2
do
echo ==============$host ==============
# 遍历所有目录,挨个发送
for file in $@
do
#判断文件是否存在
if [-e $file]
then
# 获取父目录
pdir=$(cd -p $(dirname $file); pwd)
# 获取当前文件名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done
创建软链接
ln -s opt/jdk1.7 user/local/jdk
给opt/jdk1.7创建软链接user/local/jdk,user/local/jdk将指向源文件
去掉-s就是创建硬链接,无指向,用的少,相当于拷贝一个文件。
软链接、硬链接区别在于删除链接时是否删除源文件。
ps:cd -P user/local/jdk
将进入opt/jdk1.7路径
查找某程序位置
whereis docker
查找某命令的绝对路径
which vim
查找文件
find /home -name "*.txt"
find /home ! -name "*.txt"
反向查找
其他
curl执行http请求
curl -i -H "content-type:application/octet-stream" -X PUT -T ./test.txt "http://ghg:8090/hi/test"
-H
指定请求头信息,-X
指定请求方法,-T
指定上传文件
ps
查看java进程 jps
进程的pid,保存在/tmp/中后缀名是.pid的文件里。/tmp文件夹在服务器重启后会被清空!
进程名查询占用的端口
https://www.cnblogs.com/Eason...
查看java程序占用的并且处于监听状态的端口
netstat -napt |grep java |grep LISTEN
查看当前哪个进程占用了1521端口号
lsof -i:1521
NFS
https://www.cnblogs.com/me80/...
https://server.zzidc.com/fwqf...
用户管理
创建新用户,并赋予sudo使用权限
# useradd cashew
# passwd cashew
输入设置的密码。
还可以通过# echo '123456' | passwd --stdin cashew
设置密码。
ps:创建一个用户以后,系统默认会创建一个与用户名同名的用户组。
创建完用户以后,默认会在/home目录下生成一个与用户名同名的目录,这个目录称为该用户的家目录
#id 用户名
得到用户的id信息
/etc/passwd
该文件保存系统用户的一些基本信息,每列:隔开
用户名UID:GID
/etc/group
保存系统用户组的信息。cat /etc/group|grep 组名
,用于查找某个用户组。
$sudo -i
变为#
给用户赋予使用sudo命令的权限。
# chmod u+w /etc/sudoers
# vim /etc/sudoers
在%wheel ALL=(ALL) ALL
下面加上一行cashew ALL=(ALL) ALL
。(制表符分隔)cashew ALL=(ALL) NOPASSWD:ALL
这样cashew用户切到root用户不需要输密码
# chmod u-w /etc/sudoers
使用chown命令可以修改文件或目录所属的用户
命令:chown 用户 目录或文件名
例如:chown qq /home/qq (把home目录下的qq目录的拥有者改为qq用户)
使用chgrp命令可以修改文件或目录所属的组:
命令:chgrp 组 目录或文件名
例如:chgrp qq /home/qq (把home目录下的qq目录的所属组改为qq组)
切换用户
# su - user01
注意空格。
用户组
(系统管理员)添加用户组# groupadd user02
(系统管理员)删除用户组# groupdel <group_name>
(系统管理员)指定组管理员# gpasswd -A <user> <group_name>
(组管理员)设置组密码# gpasswd <group_name>
,-r 取消密码
(组管理员)把用户user加入到user02组中# usermod -g user02 user
(组管理员)删除组成员 # gpasswd -d <user> <group_name>
查看当前用户所属组 # groups
查看用户所属组# groups xly
用户切换
su 用户
并没有切换到该用户的目录下面,也就是说登录环境没有改变。
用su - 用户
或者su -l 用户
才能把登录环境也切换掉
服务器管理
修改主机名
使用sudo hostname name修改主机名,当前生效,重启后失效。
使用vim /etc/sysconfig/network修改主机名,重启后生效。
结合使用,不需要重启。
查看某端口通不通
telnet 127.0.0.1 8005
telnet 服务需要安装
新装的虚拟机配置网络
虚拟机-设置-网络适配器,选用 桥接模式
占用你本机的网段,分配单独的 IP。这几种模式介绍:
桥接模式
使用VMnet0虚拟交换机,ip设置与主机网卡地址同网段的即可;此时虚拟机相当于与宿主机同处一个局域网的两台机。
特点:实现虚拟机与主机、虚拟机与互联网通信。但主机拔掉网线后,虚拟机无法与主机通过网络的方式进行通讯。IP地址一般是192.168.X.XXX。
NAT模式
使用主机中的虚拟网卡VMnet8作为网关;
特点:不会联网,只会与宿主机沟通。虚拟机可以访问互联网,但是若想把虚拟机作为服务器,让互联网访问,不可以。
仅主机模式
默认使用vmnet1。虚拟机的IP地址与主机共享。
特点:实现了虚拟机主机通信,但是虚拟机互联网无法通信。
/etc/sysconfig/network-scripts/ifcfg-文件的配置(重启网卡生效):
ONBOOT=yes网卡随机启动
BOOTPROTO=dhcp动态分配ip,一般static
重启网卡
Centos6:
service network restart
Centos7:
systemctl restart network
Centos8:
nmcli c reload
查看IP配置
ip a
启用lo网卡
ifup lo
查看防火墙是否关闭
$ sudo service iptables status
或者firewall-cmd --state
关闭防火墙
$ sudo service iptables stop
或者 systemctl stop firewalld.service
启动防火墙
$ sudo service iptables start
或者 systemctl start firewalld.service
永久性设置防火墙关闭
$ sudo chkconfig iptables off|on
或者 systemctl disable firewalld.service
echo
echo -n "13001073255" | base64
echo -e 处理特殊字符
echo -n 不换行输出
第一个才正确
参考
修改登录问候语
vi /etc/motd
查看系统内核
uname -r
查看系统版本
cat /etc/os-release
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。