我正在使用 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 个文件之外的所有文件
- 什么发生: 没有什么
有谁知道为什么这不起作用吗?
答案1
该cron.hourly
文件remove_old_tmux_resurrect_saves
以用户身份运行root
(因此~
指的是 的主目录root
),并且您正在用户 的主目录中搜索文件admin
。
替换~
为用户主目录的绝对路径admin
。
另外,您可以以用户身份admin
运行来打开用户的 crontab并在其中放置一个条目。crontab -e
admin
还要注意,解析根本ls
不是一个好主意,无论您做什么都可以用其他工具轻松完成,甚至不需要脚本。