这样会 有 ~/.bash_history 的写入问题吗?想一想,因为这些 bash 在同时以 root 的身份登入, 因此所有的 bash 都有自己的 1000 笔记录在内存中。...因为等到注销时才会更新记录文件,所以,最后注 销的那个 bash 才会是最后写入的数据. 无法记录时间 历史命令还有一个问题,那就是无法记录指令下达的时间。...这是因为这两个取得 bash 的情况中,读取的配置文件数据 并不一样所致。 由于我们需要登入系统,所以先谈谈 login shell 会读取哪些配置文件?...在 login shell 的 bash 环境中,所读取的个人偏好配置文件其实主要有三个,依序分别是: ~/.bash_profile ~/.bash_login ~/.profile 其实 bash...您可以自由的转载和修改,但请务必注明文章来源和作者署名并说明文章非原创且不可用于商业目的。
/bin/bash mysqldump -uusername -ppassword demo > /mnt/dbback/demo_$(date +%Y%m%d_%H%M%S).sql 如果需要本分文件进行压缩...在具体操作中,需要将username,password和demo分别替换成对应的数据库用户名、密码和数据库名。...修改mysql配置文件 针对上面的问题,某些版本可能无法成功备份,另外也不建议将数据库密码配置在脚本中,则可直接修改mysql的配置文件。一般情况下,mysql的配置文件在/etc/my.cnf。...替换掉对应的用户名和密码,并修改bcmysql.sh脚本中的命令,取消用户名和密码参数,无需重启mysql,直接执行脚本即可看到备份结果。...demo_20181114_193425.sql 问题一 当使用vim查看导出的sql文件内容时,会发现中文有乱码。
: mysql> source /data/mysqlDump/mydb.sql 二、 编写脚本维护备份的数据库文件 在linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab...2.1、 编写BASH维护固定数量备份文件 在Linux中,使用vi或者vim编写脚本内容并命名为:mysql_dump_script.sh #!...cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。...用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。...该crontab文件是通过crontab命令创建的。 在crontab文件中如何输入需要执行的命令和时间。
指令找到对应系统中的文件进行还原: mysql> source /data/mysqlDump/mydb.sql 在 Linux 中,通常使用 BASH 脚本对需要执行的内容进行编写,加上定时执行命令...编写 BASH 维护固定数量备份文件 在 Linux 中,使用 vi 或者 vim 编写脚本内容并命名为:mysql_dump_script.sh #!...cron 读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron 的配置文件称为 “crontab”,是 “cron table” 的简写。...用户把需要执行的命令序列放到 crontab 文件中以获得执行。每个用户都可以有自己的 crontab 文件。/var/spool/cron 下的 crontab 文件不可以直接创建或者直接修改。...该 crontab 文件是通过 crontab 命令创建的。 在 crontab 文件中如何输入需要执行的命令和时间。
mysqlDump/mydb.sql 在登录进入mysql系统中,通过source指令找到对应系统中的文件进行还原: mysql> source /data/mysqlDump/mydb.sql...编写脚本及定时任务 在linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab实现日志自动化生成。...cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。...用户把需要执行的命令序列放到crontab文件中以获得执行。 每个用户都可以有自己的crontab文件。 /var/spool/cron下的crontab文件不可以直接创建或者直接修改。...该crontab文件是通过crontab命令创建的。 在crontab文件中如何输入需要执行的命令和时间。
在登录进入mysql系统中,通过source指令找到对应系统中的文件进行还原: mysql> source /data/mysqlDump/mydb.sql 在 Linux中,通常使用BASH脚本对需要执行的内容进行编写...编写BASH维护固定数量备份文件 在Linux中,使用vi或者vim编写脚本内容并命名为:mysql_dump_script.sh #!...cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。...用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。...该crontab文件是通过crontab命令创建的。 在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
在 Linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab实现日志自动化生成。...编写BASH维护固定数量备份文件 在Linux中,使用vi或者vim编写脚本内容并命名为:mysql_dump_script.sh !...cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。...用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。...该crontab文件是通过crontab命令创建的。 在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
在 Linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab实现日志自动化生成。...编写BASH维护固定数量备份文件 在Linux中,使用vi或者vim编写脚本内容并命名为:mysql_dump_script.sh #!...cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。...用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。/var/spool/cron下的crontab文件不可以直接创建或者直接修改。...该crontab文件是通过crontab命令创建的。 在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
问: 在许多 SO 问题和 bash 教程中,我看到我可以通过两种方式在 bash 脚本中访问命令行参数: $ cat testargs.sh #!...答: 在 Bash 中,* 和 @ 都用于引用传递给脚本或函数的所有参数。 当没有双引号包围时,$* 和 $@ 的行为是相同的。...中,"$@" 是要遍历的“默认”列表: $ for word; do echo "$word"; done arg 1 arg 2 arg 3 那么估计有同学要问了,有没有在需要 " 有的,在需要以特定方式合并参数时.../bin/bash # 错误的方式:"$@" 不会按预期合并参数 result="$@" echo "Using \"\$@\": ${result}" # 正确的方式:更新 IFS 后,"$*"...中$ !
/usr/bin ---- mysqldump常用操作示例 备份全部数据库的数据和结构 mysqldump -uuser -hlocalhost -ppassword -A > test.sql 备份全部数据库的结构...mysqldump -uuser -hlocalhost -ppassword database_name -t > test.sql 备份多个表的数据和结构(数据,结构的单独备份方法与上同) mysqldump...: mysql> source /test.sql 编写shell脚本维护备份的MySQL数据库文件 在linux中,通常使用BASH脚本对需要执行的内容进行编写,加上定时执行命令crontab实现日志自动化生成...5.如果文件超出限制大小,就删除最早创建的sql文件 使用crontab定期执行备份脚本 在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。...cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。
如果crontab不重定向输出,并且crontab所执行的命令有输出内容的话,是一件非常危险的事情。...每个进程都和三个系统文件相关联:标准输入stdin,标准输出stdout和标准错误stderr,三个系统文件的文件描述符分别为0,1和2。...如果只想重定向标准错误到文件中,则可以使用2> file。 crontab日志每天生成一个文件 #!.../bin/bash curl http://task.bluelive.me/api/crontab >> ~/cronLog/cron_`date +\%Y\%m\%d`.log ~/cronLog...:cron_20161108.log 在crontab中%是有特殊含义的,表示换行的意思。
在9月份的时候,心血来潮考了考 swoole苦工"滑稽园扛把子" 一下 : 在服务器中,你是如何定时备份数据库的?...当然也是可以的 crontab脚本备份 首先我们要了解数据库的备份命令: mysqldump工具备份 备份整个数据库 mysqldump -uroot -hhost -ppassword dbname ...> backdb.sql 备份数据库中的某个表 mysqldump -uroot -hhost -ppassword dbname tbname1, tbname2 > backdb.sql 备份多个数据库...每小时的第3分钟,执行该sh文件 crontab详细说明可以看:linux定时任务 文章 编写shell文件 新增 /home/tioncico/crontab/test.sh文件: #!... +x test.sh 这样之后,每个小时的第3分钟,则会执行该脚本,进行备份数据库,并且把数据写入到备份文件夹中: 额外补充: 备份sql文件之后,还可以进行压缩: mysqldump -uroot
头文件中只能声明而不能定义变量 //h1.h int num = 1; ----------------------------------------------------------------...- //h2.h #include "h1.h" //可以声明有一个外部变量num; extern int num; //extern int num=2; 给其赋值会发生错误,因为此时是对num的定义...include"iostream" #include"h2.h" using namespace std; int main(){ //输出1 cout<<num<<endl; //在cpp文件中可以随意赋值...num=2; //输出2 cout<<num<<endl; } Tips: 只有全局变量并且没有被static声明的变量才能声明为extern 变量的声明未实际分配地址...#ifndef、#define、#endif可以保证在一个文件里只是定义一次。
如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了。 我首先要在本文带给你的是完整脚本。后面会对该脚本做说明。...我假定你已经知道shell scripting、 mysqldump和crontab。 适用操作系统:任何Linux或UNIX。 ?...执行该脚本,首先会进入 /backup 目录,然后该脚本会把原有的旧数据库备份移动到 /oldbackup 文件夹中,接着根据系统的日期及时间生成一个文件名,在最后 mysqldump 命令会生成一个“...只要再次执行该脚本就没有问题了,这个问题已经不存在了。 5. 使用cron制订备份计划 使用Cron可以定时执行该脚本,备份会自动完成。使用 crontab 命令编辑cron 执行的计划任务。...#crontab –e 只要在编辑器上加入下面这一行代码保存即可。 013* * * * /backup/backup.sh 本任务表示的是在每天下午1点钟把数据库备份到指定的文件夹。
这样的命令去做bash脚本,因为-i参数是有互动的意思,导致在crontab中执行定时任务的时候,没有输出数据到sql文件当中。...建议把数据库备份的命令写成一个bash脚本。...在crontab这里调用就好了 如:建立一个/var/backups/mysql/mysqldump.sh文件,内容如下 docker exec mysql_container mysqldump -...exec rm -f {} \; export 在系统中自定义了个变量mysqldump_date,给备份和压缩命令使用 gzip 为压缩命令,默认压缩了之后会把源文件删除,压缩成.gz文件 find...恢复备份数据和binlog数据前建议先登录mysql后执行flush logs生成新的binlog日志,这样可以专注需要恢复数据的binlog文件。
/bin/bash mysqldump -u$db_user -p$db_password --all-databases > $backup_dir/sqldata_$time.sql #!...chmod u+x file.sh 表示对当前目录下的file.sh文件的所有者增加可执行权限 chmod +x 和 chmod a+x 一样,表示为所有用户增加可执行权限。 4....可见,已经有了备份文件,证明我们的脚本是没有问题的。 5....服务器系统为Centos7,crontab 已经安装好 执行命令: crontab -e 和 vim 编辑一样,英文输入下按 i 进入insert模式,就可以添加定时任务了 Crontab 格式...定期删除备份文件 只是一味地备份是不行的,磁盘再大,也有用完的时候,况且保存很久以前的数据也没有任何意义,我们需要备份的是近期最新的数据,所以定期删除文件就很有必要了 定期删除,我们只需要在脚本文件中添加以下命令
别急,接着看,通知之前的操作,我们确定了【mysqldump路径】和需要引用的【数据库信息】那么接下来在【/www/b】目录下新建一个【backup.sh】文件,因为我不太喜欢使用shell软件去新建,..._*.sql" -exec rm {} \; 代码中必须要修改的信息参考下图中的红框位置,数据库名还有备份的路径已经mysqldump路径,这里的【zbp_1012】就是我们需要备份的数据库名称,不是root.../b/backup.sh 这个命令会使用 sed 工具将脚本文件中的 DOS 格式换行符(\r)替换为空,从而将其转换为 Unix 格式。...>>表示将输出追加到文件,而2>&1表示将标准错误(2)重定向到标准输出(1),这样错误和正常输出都会被记录到日志文件中。...,设置完成后,最好使用如下命令执行测试一下看看代码是否有问题,命令: bash /www/b/backup.sh 这时开始运行脚本文件,刷新FTP路径就会发现数据库文件已经备份完成,如图: 至此备份已经全部完成
需要注意的是,如果是在 Windows 编写完成的脚本会因为 Windows每行结尾 \n\r,Linux 是 \n 而报 -bash: xxxx.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录.../bin/bash # 不压缩 mysqldump -uroot -proot database > /home/backup/name_$(date +%Y%m%d_%H%M%S).sql # 压缩...可以忽略,实在看的不爽可以在 my.cnf 中 [mysqldump] 下面增加 [mysqldump] user=myuser password=mypassword ☞ 添加定时任务 执行 crontab...使用 crontab -l 可以查看写好的定时任务;使用 service crond restart 可以重启定时任务服务。...替换下面的 MySQL 安装目录,用户名,密码,远程IP,远程端口,数据库名以及存放备份文件的目录。
为了以防万一,这时候就需要我们定时进行数据库备份,但是如果人来操作的话会是一个比较麻烦的工程,这时我们可以使用mysqldump写个脚本,由Linux的crontab来定时执行。...1.在linux系统中自定义一个文件夹,在我的服务器上我放在了/zhb/backup 2.在/zhb/backup下面建一个bkemp.sh的脚本文件 3.使用vi命令 vi ....上面的一句是生成一个sql文件,下面一句是生一个sql的压缩包 4.给脚本文件授权:chmod +777 bkemp.sh 5.输入命令 crontab -e ,这时后会进入一个和vi编辑器一样的界面...[在这里插入图片描述]大功告成,当然我们实际应用中不需要每分钟进行数据库的备份,具体的crontab表达式可根据实际进行编写。...6.如果一直备份,那会消耗大量的服务器内存,因此需要定时的删除一些时间比较久的备份,只需要在bkemp.sh文件中添加如下代码即可。
领取专属 10元无门槛券
手把手带您无忧上云