暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux运维之常用操作

心在远方AND走在路上 2021-08-02
321

前言:

由于工作经常会遇到取数据、多台虚拟机(linux系统)执行同样的操作之类的命令,所以就写了这篇文档作为记录


解决问题:

1、多台虚拟机(linux系统)批量操作脚本

2linux跨服务器远程数据拷贝

解决方案:

方案一:使用公钥和私钥的方法

1.linux跨服务器远程数据拷贝

1)、先在两台服务器生成公钥和密钥

    ssh-keygen -t rsa
    复制

    2)查找authorized_keys文件所在路径

      find / -name authorized_keys 
      复制

      3)、将秘钥源文件所在服务器的公钥拷贝到目标服务器,加入authorized_keys

        cat id_rsa.pub74 >>authorized_keys
        复制

        3)、然后在源文件所在服务器执行

          scp data.jar root@192.168.1.8:/root/tester/system-2.4.3.jar
          复制

          前面为源文件地址,后面为目标服务器及要复制的地址

          2、远程执行批量命令脚本:

            ssh root@192.168.1.9 'cd /root/tester && sh /root/tester/test.sh'
            复制

            方案二:使用脚本

            1、远程需要传输的文件是每天自动生成的数据库备份

            1)、如果没有安装lftp,就安装lftp

              yum install lftp -y
              复制

              2)、创建sh (脚本)文件

                #!/bin/bash
                #SFTP配置信息
                #IP
                IP=192.168.21.67
                #端口
                PORT=22
                #用户名
                USER=root
                #密码
                PASSWORD=yc1234567
                #待上传文件根目录
                CLIENTDIR=/mnt/mysql-backup
                #SFTP目录
                SEVERDIR=/usr/mysql-backup
                #待上传文件名
                d2=`date
                +%Y%m%d`
                FILE=zita_wms-$d2_013001.dump

                lftp -u ${USER},${PASSWORD} sftp://${IP}:${PORT} <
                cd ${SEVERDIR}/
                lcd ${CLIENTDIR}
                put ${FILE}
                by
                EOF
                复制

                3)、授权文件操作

                  chmod 777 yc_test.sh
                  复制

                  4)、如果再windows 里面编辑的文件,放到linux 里面,需要更改为unix的文件格式

                    viyc_test.sh
                    :set ff=unix
                    :wq!
                    复制

                    如果再linux 里面创建文件

                      touch  yc_test.sh
                      复制

                      i 编辑内容

                        :wq!
                        复制

                        退出

                        编辑sh 文件前 可以测试是否可用

                          lftp -u root,yc123456 sftp://111.111.111.111:22 <
                          cd usr/mysql-backup
                          lcd /usr/sh/
                          put a.xlsx
                          by
                          EOF
                          复制

                           

                          编辑完成后可以直接调用

                            /usr/sh/yc_test.sh
                            复制

                             

                            定时触发脚本:

                            放到crontab 里面

                            root身份登录到命令行

                              crontab -e
                              复制

                              按下i键进入到编辑模式

                                 0 */1 * * * usr/sh/start-yc_test.sh
                                复制

                                  同时按下ctrl+c退出编辑模式
                                  按下shift+:
                                  输入wq
                                  退出 crontab
                                  复制

                                                                                                                                           

                                  备注学习:

                                  1lftp初涉

                                  lftp命令是一款文件客户端程序,它支持ftpSETPHTTPFTPs等多种文件传输协议。lftp支持tab自动补全,记不得命令双击tab键,就可以看到可能的选项了。

                                  1)、语法

                                    lftp(选项)(参数)
                                    复制

                                    2)、选项

                                      -f:指定lftp指令要执行的脚本文件;
                                      -c:执行指定的命令后退出;
                                      --help:显示帮助信息;
                                      --version:显示指令的版本号
                                      复制


                                      3)、登录ftp

                                        lftp 用户名:密码@ftp地址:传送端口(默认21
                                        复制


                                        3)、查看文件与改变目录

                                          ls
                                          cd 对应ftp目录
                                          复制


                                          4)、下载

                                            get 当然是可以的,还可以:
                                            mget -c *.pdf    #把所有的pdf文件以允许断点续传的方式下载。
                                            mirror aaa/      #将aaa目录整个的下载下来,子目录也会自动复制。
                                            pget -c -n 10 file.dat   #以最多10个线程以允许断点续传的方式下载file.dat,可以通过设置pget:default-n的值而使用默认值。
                                            复制


                                            5)、上传

                                              同样的put、mput都是对文件的操作,和下载类似。
                                              mirror -R 本地目录名
                                              将本地目录以迭代(包括子目录)的方式反向上传到ftp site。
                                              复制


                                              6)、模式设置

                                                set ftp:charset gbk
                                                远程ftp site用gbk编码,对应的要设置为utf8,只要替换gbk为utf8即可。
                                                set file:charset utf8
                                                本地的charset设定为utf8,如果你是gbk,相应改掉。
                                                set ftp:passive-mode 1
                                                使用被动模式登录,有些site要求必须用被动模式或者主动模式才可以登录,这个开关就是设置这个的。0代表不用被动模式。
                                                复制


                                                7)、书签

                                                其实命令行也可以有书签,在lftp终端提示符下:

                                                bookmark add ustc

                                                就可以把当前正在浏览的ftp siteustc作为标签储存起来。以后在shell终端下,直接lftp ustc就可以自动填好用户名和密码,进入对应的目录了。

                                                bookmark edit

                                                会调用编辑器手动修改书签。当然,也可以看到,这个书签其实就是个简单的文本文件。密码,用户名都可以看到。

                                                8)、配置文件

                                                  vim etc/lftp.conf
                                                  一般,我会添加这几行:
                                                  set ftp:charset gbk
                                                  set file:charset utf8
                                                  set pget:default-n 5


                                                  复制



                                                  文章转载自心在远方AND走在路上,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                                  评论