Jason GNSS Beginner

Linux Skills

2021-04-30
Jason Ding

本文收集整理了一些常用或者在特性场景下特别实用的Linux命令\配置\脚本。


Configuration

服务器之间建立scp信任连接

服务器之间传输数据通常使用scp来传输数据,但是scp每次使用都需要输入密码,当有大量scp需求或者含有scp命令的脚本需要被定时调度的时候,就可以在两台服务器之间建立信任连接来实现免密scp。

建立信任连接的步骤如下:

  1. 登录服务器A,执行命令ssh-keygen -t rsa生成公私钥(选项全部回车),存储公私钥的文件夹为~/.ssh,文件名分别默认为id_rsa和id_rsa.pub
  2. 将生成的公钥文件(id_rsa.pub)内容复制到服务器B的~/.ssh/authorized_keys文件中,若无该文件则创建一个

注意:执行上述过程后,相当于服务器B向服务器A敞开了大门,即服务器B信任服务器A,相当于服务器A拥有了不受限制的从服务器B获取数据和写入数据的权限。若需要服务器A信任服务器B,方法相同。


服务器保存远程服务器登录信息

通常我们不会只有一台服务器,在多个服务器之间切换的时候需要记住一堆服务器地址,尤其在缺乏终端模拟软件(如Xshell和SecureCRT等)的时候,比如团队合作时在他人计算机上操作或者WSL下在多台远程服务器见切换的时候。此时若将登录信息保存在服务器上,无论在哪一台上操作,都能够非常方便地进行切换。服务器保存远程服务器登录信息的方法如下:

  1. 打开配置文件

    vim~/.ssh/config
    
  2. 在文件中加入远程服务器信息

    Host ali                          # 服务器名字
    User root                         # 登录用户名
    ServerAliveInterval 60            # 防止挂起过久断线
    Hostname xx.xxx.xxx.xx            # 服务器地址
    
  3. 保存并推出

config文件可写入多台服务器信息,使用时直接通过服务器名称登录即可,以上面的为例,键入ssh ali后输入密码即可切换到服务器ali。


Commands

Linux定时任务命令crontab

crontab [-u username]    //省略用户表表示操作当前用户的crontab
    -e      (编辑工作表)
    -l      (列出工作表里的命令)
    -r      (删除工作表)
    
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

examples

* * * * * myCommand                       // 每1分钟执行一次myCommand
3,15 * * * * myCommand                    // 每小时的第3和第15分钟执行
3,15 8-11 * * * myCommand                 // 在上午8点到11点的第3和第15分钟执行
3,15 8-11 */2  *  * myCommand             // 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 myCommand                 // 每周一上午8点到11点的第3和第15分钟执行
30 21 * * * /etc/init.d/smb restart       // 每晚的21:30重启smb
45 4 1,10,22 * * /etc/init.d/smb restart  // 每月1、10、22日的4 : 45重启smb
10 1 * * 6,0 /etc/init.d/smb restart      // 每周六、周日的1 : 10重启smb
0,30 18-23 * * * /etc/init.d/smb restart  // 每天18 : 00至23 : 00之间每隔30分钟重启smb
0 23 * * 6 /etc/init.d/smb restart        // 每星期六的晚上11 : 00 pm重启smb
* */1 * * * /etc/init.d/smb restart       // 每一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart    // 晚上11点到早上7点之间,每隔一小时重启smb

查看执行log:vim /var/spool/mail/username

注意:命令中使用到系统时间时,经常会使用%,而百分号%在crontab中表示换行,因此应当使用转义字符\%代替%;

另外,由于键盘中e和r相邻,而crontab -r会删除整个crontab任务表,所以使用crontab -e编辑任务表的时候要小心,建议定时备份crontab任务表


终端复用工具tmux

基本操作:

tmux                                # 新建一个session, 名字为0
tmux new -s session1                # 新建一个名为session1的session
tmux detach                         # 断开当前session
tmux ls                             # 查看全部session
tmux a -t session1                  # 连接到session1, 若只有一个session, tmux a即可
tmux rename -t session1 session2    # 重命名session1为session2
tmux kill-session -t session1       # 删除session1

在tmux状态下的session操作:(prefix为前置键,默认为Ctrl+b,按下prefix之后输入命令)

prefix $                            # 重命名当前session
prefix d                            # 断开当前session,等效于tmux detach
prefix s                            # 切换session
prefix :new                         # 新建session

关于Pane的操作

prefix %                            # 水平分割pane
prefix "                            # 数值分割pane
prefix o                            # 切换pane
prefix 上下左右箭头                   # 切换pane
prefix ctrl 上下左右箭头              # 调整pane大小
exit                                # 删除当前pane

Ctrl+b 的默认prfix在键盘中距离较大,不便于操作,也可以用以下方式修改Ctrl +b 为Ctrl + x

  1. 在tmux下打开.tmux.conf : vim ~/.tmux.conf

  2. 写入并保存

    unbind C-b
    set -g prefix C-x
    
  3. 按下Ctrl + b + : 在地下出现黄条输入框输入source .tmux.conf 回车,设置成功!

参考:http://dawnguo.cn/posts/76651904.html


下载工具wget

wget下载文件夹中全部数据

   wget -c -r -np -k -L -p http://docs.openstack.org/liberty/install-guide-rdo/

在下载时,有用到外部域名的图片或连接。如果需要同时下载就要用-H参数。

   wget -np -nH -r –span-hosts www.xianren.org/pub/path/

-c 断点续传

-r 递归下载,下载指定网页某一目录下(包括子目录)的所有文件

-nd 递归下载时不创建一层一层的目录,把所有的文件下载到当前目录

-np 递归下载时不搜索上层目录,如wget -c -r www.xianren.org/pub/path/

没有加参数-np,就会同时下载path的上一级目录pub下的其它文件

-k 将绝对链接转为相对链接,下载整个站点后脱机浏览网页,最好加上这个参数

-L 递归时不进入其它主机,如wget -c -r www.xianren.org/

如果网站内有一个这样的链接: www.xianren.org,不加参数-L,就会像大火烧山一样,会递归下载www.xianren.org网站

-p 下载网页所需的所有文件,如图片等

-A 指定要下载的文件样式列表,多个样式用逗号分隔

-i 后面跟一个文件,文件内指明要下载的URL



Similar Posts

Comments

Content