应用华为云服务器时,由于服务器存储限制,一旦日志文件过多爆满,就会导致服务器停止运行,对于基于该服务器的产品来说是致命的,因此需要定期清除日志文件,保证服务器存储空间充足。
在我自己去进行脚本编辑并设置定时程序时,遇到许多新手会出现的问题,在此一步步列举。
远程进入华为云服务器之后,进行以下步骤
1.由于我的日志文件在 /home/logs 文件下,“(cd /home/logs)
这里若进入logs文件夹显示no such file or dirctory,说明该文件夹目前还不具备访问权限,那就先进入home文件夹下(cd /home),然后为logs文件夹修改权限——
指令为 sudo chmod -R 777 logs ”
因此我直接在该文件夹下新建文件
auto-del-log.sh; ——指令为 touch auto-del-log.sh(注意这里后面都不需要加;)
2.给.sh文件设置删除的具体指令
编辑该文件——指令为 vim auto-del-log.sh(这里是已经在logs文件夹下编辑了),此时可能又会显示no such file or dirctory,这是因为新建的这个文件也需要权限来编辑,赋予可执行权限的指令为—— chmod +x auto-del-log.sh,此后再编辑vim即可编辑该文件,按下回车后会直接进入该界面
图上是我已经编辑好的内部程序,面对尾部这一串代码"auto-del-log.sh" 1L, 46C,并且按任何键都没有效果,我们该如何?实际上这个编辑界面需要按下“i”键才会进入编辑模式,此时就可以编辑我第一行的代码——指令为find /home/logs -mtime +30 -exec rm -rf {} \;(30为设置30天前的日志全部清除,若要改天数,直接改数字即可,其他都不用改,若要改其他参数,自行查阅资料)
如图为按下i键后的界面,显示可以编辑,若要退出,则先按Esc键,变成这个界面
再键入:wq 保存退出,即可回到原界面
下图为按下回车后回到的原界面
此时,该删除日志脚本已编辑完成,下一步就是将他加入到系统定时程序中去。
3.创建定时任务——指令为 crontab -e
(首先要回到最初始的文件夹——指令为 cd “此处有两个空格,回上一层就是一个空格,因为我的是两层文件夹,所以按两个空格”)
按下后又会进入上图所示界面,内有代码诸如 "/tmp/crontab.CataB3" 2L, 54C 之类,与上面相同的方法对此进行编辑,内设代码——指令为 0 0 * * * /home/logs/auto-del-log.sh >/dev/null 2>&1
0 0即为每天0点定时触发
编辑如图所示
编辑完成后与上面一样进行操作:wq保存回到原界面即可
可输入 crontab -l对在执行程序进行查看
如图所示,刚刚编辑的程序已成功保存
后续实际运行成功了,但是由于我的自动删除文件放在logs文件夹下,导致它本身存在时间达到30天被自己删除了,所以大家在自己设置的时候可以直接把auto-del-log.sh文件放在/home下,将定时任务里面的该文件地址修改为/home/auto-del-log.sh即可