我正在使用 Ubuntu 14.04 并在以下脚本中创建/etc/cron.hourly
并使其可执行
文件名:remove_old_tmux_resurrect_saves
#! /bin/bash
ls ~/.tmux/resurrect/* -1dtr | head -n -10 | xargs -d '\n' rm -f
$ ls -al ~/.tmux/resurrect/
total 120
drwxrwxr-x 3 admin admin 61440 Nov 22 16:35 .
drwxrwxr-x 4 admin admin 4096 Nov 5 04:02 ..
lrwxrwxrwx 1 admin admin 38 Nov 22 16:35 last -> tmux_resurrect_2015-11-22T16:35:29.txt
drwxrwxr-x 2 admin admin 4096 Nov 22 16:35 pane_contents
-rw-rw-r-- 1 admin admin 11237 Nov 22 16:35 pane_contents.tar.gz
-rw-rw-r-- 1 admin admin 692 Nov 22 02:53 tmux_resurrect_2015-11-22T02:53:49.txt
-rw-rw-r-- 1 admin admin 692 Nov 22 05:09 tmux_resurrect_2015-11-22T05:09:18.txt
-rw-rw-r-- 1 admin admin 692 Nov 22 05:24 tmux_resurrect_2015-11-22T05:24:20.txt
-rw-rw-r-- 1 admin admin 692 Nov 22 05:39 tmux_resurrect_2015-11-22T05:39:23.txt
-rw-rw-r-- 1 admin admin 795 Nov 22 05:41 tmux_resurrect_2015-11-22T05:41:37.txt
-rw-rw-r-- 1 admin admin 795 Nov 22 05:54 tmux_resurrect_2015-11-22T05:54:32.txt
-rw-rw-r-- 1 admin admin 795 Nov 22 16:05 tmux_resurrect_2015-11-22T16:05:08.txt
-rw-rw-r-- 1 admin admin 943 Nov 22 16:20 tmux_resurrect_2015-11-22T16:20:15.txt
-rw-rw-r-- 1 admin admin 795 Nov 22 16:35 tmux_resurrect_2015-11-22T16:35:29.txt
当我手动运行它时它工作正常,当我检查 cron 是否接受它作为工作时它工作正常,即
sudo run-parts --test /etc/cron.hourly
输出
/etc/cron.hourly/remove_old_tmux_resurrect_saves
的输出cat /etc/crontab
$ cat crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
- 应该发生什么:脚本删除该目录中除最近的 10 个文件之外的所有文件
- 发生了什么:没有
有谁知道为什么这不起作用?
该
cron.hourly
文件remove_old_tmux_resurrect_saves
以用户身份运行root
(因此~
指的是 的主目录root
),您正在用户的主目录中搜索文件admin
。替换
~
为用户主目录的绝对路径admin
。或者,您可以通过以用户身份运行来打开 user
admin
的 crontab并在其中放置一个条目。crontab -e
admin
另请注意,解析
ls
根本不是一个好主意,无论您做什么,都可以使用其他工具轻松完成,甚至不需要脚本。