CentOS 7 修改主机名
方法 1: hostname 主机名
这种方式,只能修改临时的主机名,当重启机器后,主机名称又变回来了。
方法 2: hostnamectl set-hostname <主机名>
使用这种方式修改,可以永久性的修改主机名称!
所以我们的步骤应该:
- 测试备份命令是否可以正常执行
- 安装测试命令行邮件工具 mailx
- 安装计划任务工具 Crontab
- 编写备份脚本
- 添加计划任务
测试备份命令
首先你要获得你要备份的数据库对应的 select 权限,仅需要 select 权限即可,mysql 在管理方面,应该坚持只赋予必须权限的原则。
mysql> grant select on ghost.* to 'ghost_backuser'@'localhost' identified by 'backupPass';
Query OK, 0 rows affected (0.00 sec)
因为我只在本地执行备份操作,所以我只赋予了localhost
的权限,你的权限应该要是执行备份工作的服务器主机信息。
# 创建仅授权本地访问的用户
mysql> create user dbackuser@'localhost';
# 创建授权所有来源地址的用户
mysql> create user dbackuser@'%';
# 创建仅授权从特定IP的用户
mysql> create user dbackuser@'192.168.0.230';
# 创建仅授权从特定IP段访问的用户
mysql> create user dbackuser@'192.168.0.0/23';
# 创建仅授权从特定域名来访问的用户
mysql> create user dbackuser@'samzong.me';
好了,接下来我们测试对应用户是否有权限。
➜ ~ mysql -u ghost_backuser -pbackupPass
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.6.35 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ghost |
+--------------------+
2 rows in set (0.00 sec)
mysql> use ghost;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select name from users;
+------+
| name |
+------+
| ALEX |
+------+
1 row in set (0.00 sec)
测试mysqldump
备份命令,注意 mysqldump 备份会锁表,但对于正在工作的数据库,锁表会影响到正常业务,所以我们可以使用--single-transaction
参数,不锁表备份。
➜ ~ mysqldump -u ghost_backuser -pbackupPass ghost > ghost.bak.sql
Warning: Using a password on the command line interface can be insecure.
mysqldump: Got error: 1044: Access denied for user 'ghost_backuser'@'localhost' to database 'ghost' when using LOCK TABLES
➜ ~ mysqldump -u ghost_backuser -pbackupPass --single-transaction ghost > ghost.bak.sql
Warning: Using a password on the command line interface can be insecure.
➜ ~ ls -lh
total 780K
-rw-r--r-- 1 root root 780K May 17 16:24 ghost.bak.sql
➜ ~
安装命令行邮件工具 mailx
安装 mailx 在 CentOS/RehHat:
➜ ~ yum install -y mailx
测试发送邮件:
➜ ~ echo "test" | mail -s "this a test email" [email protected]
安装计划任务工具 Crontab
crontab 命令常见于 Unix 和类 Unix 的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中。通常,crontab 储存的指令被守护进程激活,crond 常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为 cron jobs。
➜ ~ yum install vixie-cron
➜ ~ yum install crontabs
vixie-cron 软件包是 cron 的主程序;
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
启动 crond 并设置为开机自启动:
➜ ~ service crond start
Starting crond: [ OK ]
➜ ~ chkconfig crond on
crontab 基础命令:
语 法:crontab [-u <用户名称>][配置文件] 或 crontab [-u <用户名称>][-elr]