前言
在互联网中,数据就是金钱,为了防止出现数据丢失无法找回的意外,通常都会对数据库做定期备份动作。
那么,MySQL 如何实现此目的呢?
下面,我们就使用 MySQL 自带的 mysqldump 命令结合 Linux 的 crontab 工具来定时全量备份数据!
人非圣贤,孰能无过?
对程序而言,同样如此,即使一个产品经历了一系列的开发测试工作,在此过程中又遇到并解决了成百上千个 Bug,最终交付给客户并正式上线了,后期还是可能会出现一些问题。
这些问题的产生,可能是客户进行了不符合逻辑的异常操作引起的,也可能是程序代码原先判断逻辑本就存在问题,还有可能是某个应用或服务器资源(CPU、内存、磁盘、网络)出现异常了。但不管怎样,是问题就应当给客户解决,不然客户不满意了,公司的企业形象降低了,若后期还有合作,说不定就泡汤了呢!合作泡汤了,说不定整个业务部门就给你优化掉,程序员就没班上了呢!!!
作为程序员,为了防止被优化的意外发生,还是老老实实的帮客户解决问题吧!
那么,怎么去解决问题呢?
作为一个程序员,接到一个产品问题,想的应该不是解决,而是分析问题的类型,待分析出问题的类型后,才去解决问题。
那么,问题大概又可以分为哪几种类型呢?
笔者认为,其大致可以分为以下三种:
现在,我们得到了一个结论——问题的存在形式是多种多样的,因此我们遇到问题不能局限在某一块思考(后端开发不能碰到问题就想的是看日志,得明确是后端问题才去看日志),因为不同的问题解决方案也不一样。
由于只有在大致分析出问题的类型后,才能尝试去解决问题:
那么,又该如何去观察服务器在某段运行时间里的资源情况是怎样的呢?
这个时候,就需要布置一套监控系统来辅助我们程序员观察分析了。
在 Linux 中,我们经常需要输入一些长命令。
比如,我们现在需要以后台模式指定内存大小运行一个 jar 文件,并且还将运行日志输出到nohup.out
文件中,那么需要输入以下命令达到该效果:1
nohup java -jar -Xms256m -Xmx256m xxx.jar &
除此之外,我们还想看看输出后的日志信息,那么又需要执行以下命令:1
tailf nohup.out
这两行命令能否一起执行呢?
并且,我们知道:代码开发完成后,一般会在测试服务器上进行测试。既然需要测试,那么测试出 Bug 是再正常不过的一件事情了。
出了 Bug 那就修呗,修好后就需要重新打 jar 包并部署到服务器,那么就又需要重新启动该应用!
若每次部署都重复输入同样的长命令,无疑会非常耗费时间,那么有没有一种方法来保存该命令以方便后续快速运行呢?
对于以上问题的答案,均可通过 Shell 脚本解决,并且 Shell 比这更强大!