修改原来的rm指令到垃圾箱,对于误操作的删除可以直接从垃圾箱里拉回来,同时提高网络安全意识。
创建remove.sh 脚本
PARA_CNT=$#
TRASH_DIR="/home/pass/.trash" # 指定垃圾箱目录
for i in $*; doSTAMP=`date +%Y%m%d` # 删除时间fileName=`basename $i`mv $i $TRASH_DIR/$fileName.$STAMP # 删除文件命令,放到垃圾箱
done
修改rm指令
vim ~/.bashrc # 编辑文件
alias rm="sh /home/pass/tools/remove.sh" # 末尾增加 rm 重定向
source ~/.bashrc # 使修改文件生效
删除文件测试
pass@pass:~$ ls
nginx.conf test.sh tools util.sh uwsgi.ini uwsgi.log uwsgi.pid while.sh
pass@pass:~$ rm nginx.conf test.sh util.sh
pass@pass:~$ ls
tools uwsgi.ini uwsgi.log uwsgi.pid while.sh
检查删除的文件是否放到垃圾箱
pass@pass:~$ ls /home/pass/.trash/
nginx.conf.20240326 test.sh.20240326 util.sh.20240326
将文件从垃圾箱拉取到本地
pass@pass:~$ mv /home/pass/.trash/nginx.conf.20240326 ./nginx.conf
pass@pass:~$ ls
nginx.conf tools uwsgi.ini uwsgi.log uwsgi.pid while.sh
定期删除垃圾数据,节省空间
创建定时任务
(注:首次创建会提示什么工具编辑,这里建议vim选择2)
pass@pass:~$ select-editor 该指令可以重新选择编辑器
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/edChoose 1-4 [1]: 2
pass@pass:~$ crontab -e
no crontab for pass - using an empty oneSelect an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.basic
3. /usr/bin/vim.tiny
4. /bin/edChoose 1-4 [1]: 2
定时任务设置方法
* * * * * rm -rf /home/pass/.trash/*# 分钟 小时 天 月 星期 命令 每个 * 对应下面时间# 0-59 0-23 1-31 1-12 0-6 command
验证定时清理任务的执行
46 * * * * rm -rf /home/pass/.trash/* # 每小时第46分钟时执行该命令
service cron restart 重新启动cron 工具
ubuntu 查看cron定时日志方法
sudo vim /etc/rsyslog.d/50-default.confcron.* /var/log/cron.log # 找到该行,去掉sudo service rsyslog restart # 重新启动日志,使修改生效
验证结果:
pass@pass:~/.trash$ date
Tue 26 Mar 2024 01:44:25 PM UTC
pass@pass:~/.trash$ ls
log.log test.log test.sh
pass@pass:~/.trash$ date
Tue 26 Mar 2024 01:46:01 PM UTC
pass@pass:~/.trash$ ls
pass@pass:~/.trash$ cat /var/log/cron.log 检查定时任务日志执行成功
Mar 26 13:44:02 pass crontab[49512]: (pass) BEGIN EDIT (pass)
Mar 26 13:44:11 pass crontab[49512]: (pass) REPLACE (pass)
Mar 26 13:44:11 pass crontab[49512]: (pass) END EDIT (pass)
Mar 26 13:44:19 pass cron[49724]: (CRON) INFO (pidfile fd = 3)
Mar 26 13:44:19 pass cron[49724]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Mar 26 13:46:01 pass CRON[50950]: (pass) CMD (rm -rf /home/pass/.trash/*)
查看定时任务的执行
pass@pass:~$ crontab -l 查看定时任务
46 * * * * rm -rf /home/pass/.trash/*
pass@pass:~$ crontab -r 删除定时任务
pass@pass:~$ crontab -l
no crontab for pass
第二个方法更新中。。。
第三个方法更新中。。。