Centos7——scp和rsync

1.scp

scp就是secure copy安全拷贝 ,用于将文件或者目录从一个Linux系统拷贝到另一个linux系统下。scp传输数据用的是SSH协议,保证了数据传输的安全。

格式:

scp 远程用户名@ip地址:文件的绝对路径 本地Linux系统路径 (从远程主机拉取文件)

scp 本地linux系统文件路径 远程用户名@ip地址:远程系统文件绝对路径名 (像远程主机推送文件)

 使用 -P参数可跟端口号,指定远程连接的端口号。
 当报错 "not a regular file";可加参数 -r 解决,当拉取或推送的是目录时需加 -r 参数

2.rsync 远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

1.联网安装rsync

[spark@spark202 ~]$ yum install -y rsync

安装完成

2.格式

rsync 选项参数  要拷贝的文件路径/名称 远程用户名@ip地址:远程系统文件绝对路径名

-r:--recursive:递归到目录中去。

-v :显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。

-l:--links:如果文件是软链接文件,则拷贝软链接本身而非软链接所指向的对象。

另外,使用rsync一定要注意的一点是,源路径如果是一个目录的话,带上尾随斜线和不带尾随斜线是不一样的,不带尾随斜线表示的是整个目录包括目录本身,带上尾随斜线表示的是目录中的文件,不包括目录本身。例如:

rsync -a /etc /tmp
rsync -a /etc/ /tmp

第一个命令会在/tmp目录下创建etc目录,而第二个命令不会在/tmp目录下创建etc目录,源路径/etc/中的所有文件都直接放在/tmp目录下。

3.xsync集群分发脚本

循环复制文件到所有节点的相同目录下

/home/spark/bin这个目录下存放的脚本,spark用户可以在系统任何地方直接执行。

在/home/spark目录下创建bin目录,并在bin目录下xsync创建文件,文件内容如下

[spark@spark202 ~]$ cd /home/spark/
[spark@spark202 ~]$ mkdir bin
[spark@spark202 ~]$ cd bin/
[spark@spark202 bin]$ touch xsync
[spark@spark202 bin]$ vim xsync
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=202; host<205; host++)); do
        echo ------------------- spark$host --------------
        rsync -rvl $pdir/$fname $user@spark$host:$pdir
done

修改脚本 xsync 具有执行权限

[spark@spark202 bin]$ chmod 777 xsync 

调用脚本形式:xsync 文件名称

[spark@spark202 bin]$ xsync /home/spark/bin

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: #!/bin/bash #定义备份文件存放的路径 backup_dir=/data/backup/mysql #定义mysql安装的路径 mysql_dir=/usr/local/mysql #定义mysql用户名 user=root #定义mysql用户密码 password=123456 #定义备份文件名 time=`date +%Y%m%d%H%M` backup_file=$backup_dir/mysql_$time.sql #备份数据库 $mysql_dir/bin/mysqldump -u$user -p$password --all-databases > $backup_file #定义备份文件保留时间 find $backup_dir -mtime +7 -name "*.sql" -exec rm -rf {} \; #定义定时备份 echo "30 3 * * * root $backup_dir/backup.sh" >> /etc/crontab ### 回答2: 以下是一个CentOS 7上MySQL定时备份脚本的示例: 1. 首先,创建一个新文件,例如`mysql_backup.sh`,并使用任何文本编辑器打开它。 2. 在脚本的开头,添加以下行来指定脚本将使用的数据库用户名和密码: ```bash DB_USER="your_username" DB_PASS="your_password" ``` 请将`your_username`和`your_password`替换为实际的数据库用户名和密码。 3. 接下来,指定备份文件的保存位置和名称: ```bash BACKUP_DIR="/path/to/backup/directory" DATE=$(date +"%Y%m%d%H%M%S") BACKUP_FILE="$BACKUP_DIR/backup_$DATE.sql" ``` 请将`/path/to/backup/directory`替换为实际的备份文件保存路径。 4. 添加以下行来执行备份: ```bash mysqldump -u $DB_USER -p$DB_PASS --all-databases > $BACKUP_FILE ``` 这将使用`mysqldump`命令将所有数据库备份到指定的备份文件中。 5. 最后,设置执行定时任务的时间间隔。示例中将每天执行备份,可以根据需要进行调整: ```bash (crontab -l 2>/dev/null; echo "0 0 * * * bash /path/to/mysql_backup.sh") | crontab - ``` 请将`/path/to/mysql_backup.sh`替换为实际的脚本路径。 保存并关闭脚本文件。 6. 将脚本设置为可执行: ```bash chmod +x mysql_backup.sh ``` 7. 最后,通过运行以下命令来设置定时备份任务: ```bash crontab -e ``` 在crontab文件中,添加以下行来执行备份任务: ``` 0 0 * * * /path/to/mysql_backup.sh ``` 请将`/path/to/mysql_backup.sh`替换为实际的脚本路径。 保存并关闭crontab文件。 现在,每天午夜12点,MySQL备份脚本将以指定的位置和名称创建一个新的备份文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值