通常在我的开发工作站(我是管理员并且是唯一的用户)上,我无法通过删除根文件夹来删除文件 - 尽管已经递归地获得了树的所有权。我假设这是由于文件被另一个进程锁定。
我有哪些(可编写脚本的)选项可以在这里提供帮助?
评论:我还应该说我在 2008 x64 上。
我使用 log4j 从我的程序创建滚动日志文件。它写入一个日志文件,直到它达到 256mb,然后它重命名所有日志文件并创建一个新的日志文件并继续记录。
在我的程序运行时监视这些日志文件对我来说非常有用,因此我在日志文件上运行“tail -f”以实时查看它。
问题发生在发生日志轮换时,这不会在可预测的时间发生。“Tail”跟随具有特定句柄的文件,无论其名称如何,因此当发生旋转时,tail 指向不再记录到的旧文件。如果我停止并重新运行该命令,它将再次找到当前文件。
如何自动跟踪最新的日志文件?如何跟踪具有给定名称的文件,以便日志轮换始终显示最新文件的输出?
谢谢!
我在我的 RHEL 服务器上生成了超过 50GB 的缓存文件(典型的文件大小是 200kb,所以没有文件很大)。当我尝试删除这些文件时,需要 8-10 个小时。
然而,更大的问题是系统负载在这 8-10 个小时内变得至关重要。无论如何,我可以在删除过程中控制系统负载。
我尝试使用
nice -n19 rm -rf *
Run Code Online (Sandbox Code Playgroud)
但这对系统负载没有帮助。
PS 我在superuser.com上问了同样的问题,但没有得到足够好的答案,所以在这里尝试。
我想知道是否有一些实用程序可以显示我在 Ubuntu 服务器上有多少打开的文件?
我正在尝试下载多个文件并需要在下载时重命名,我该怎么做并指定我希望它们下载到的目录?我知道我需要使用 -P 和 -O 来做到这一点,但它似乎对我不起作用。我正在将它写入一个 php 脚本并在 unix 上运行。
我有一个文件,它导出了一堆需要删除的文件名。我需要知道如何删除每个文件,而不必在命令行中一次发出一个。
我曾想过将它放在一个for循环中,这可能会奏效,但想知道是否有更简单甚至更好的解决方案来做到这一点。
谢谢。
将完全改写这个问题,因为几个月后它仍然是一个悬而未决的生产问题。
我有一个基于 FreeBSD 7.3-RELEASE-p1 的 FreeNAS 0.7.2 盒,在 RAIDz1 中运行带有 4x1TB SATA 驱动器的 ZFS。
创建和删除 1TB 稀疏文件后,我似乎丢失了 1TB 的可用空间。这发生在几个月前。
这张表列出了目前的情况。
command actual expected ok/not ok
du -c 1.47TB used 1.47TB used ok
zfs list used 2.48TB used 1.47TB not ok
avail 206GB avail 1.2TB not ok
zpool list size 3.64TB size 3.64TB ok
used 3.31TB used 1.95TB not ok
avail 334GB avail 1.69TB not ok
Windows right Disk size 2.67TB Disk size 2.67TB ok
click disk, Used 2.47TB Used 1.47 …Run Code Online (Sandbox Code Playgroud) 昨天我做了一件我今天意识到的愚蠢的事情。我跑了:
/root# chmod o-rwx * .*
Run Code Online (Sandbox Code Playgroud)
这应该删除当前目录 ( /root) 中所有文件的读取、写入和执行权限。我一这样做,screen表现得很奇怪,我无法以非 root 用户身份运行命令,除非我使用 root 登录,否则 ssh 拒绝工作。
这是由于bash扩大.*到..太!现在,如何在chmod不使用find循环或其他语言(如 perl)的情况下chmod 目录中的所有文件?
我有这个 bash 脚本并通过 cron 定期运行:
#!/bin/bash
RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
KEY=/Users/admin/Documents/Backup/rsync-key
RUSER=philosophy
RHOST=example.com
RPATH=data/
LPATH="/Volumes/G Technology G Speed eS/Backup"
LOCKFILE=/Users/admin/Documents/backup.isrunning
if [ ! -e $LOCKFILE ]; then
touch $LOCKFILE
$RSYNC -avz --delete --progress -e "$SSH -i $KEY" "$LPATH" $RUSER@$RHOST:$RPATH
rm $LOCKFILE
else
echo "Rsync - Backup still running"
fi
Run Code Online (Sandbox Code Playgroud)
备份可能需要任何时间,从几分钟到几天不等,如果我每 6 小时通过 cron 运行一次备份,我不想要的是同时运行的两个实例。所以我所做的是创建了一个简单的锁定机制。但我担心如果脚本中途终止,无论出于何种原因,锁定文件总是会在那里并且备份例程不会运行。
有没有办法增强它以更好地防呆?
谢谢
斯科特
编辑: 由于以下答案,我现在正在使用的最终 bash 脚本:
#!/bin/bash
RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
KEY=/Users/admin/Documents/Backup/rsync-key
RUSER=philosophy
RHOST=example.com
RPATH=data/
LOCKFILE=/Users/admin/Documents/Backup/backup.isrunning
if [ ! -e $LOCKFILE ]
then
echo $$ >"$LOCKFILE"
else
PID=$(cat "$LOCKFILE") …Run Code Online (Sandbox Code Playgroud) 如何将目录的最后一部分存储在变量中?
例如,我有以下路径:A\B\C\D,我想存储D在像file_name=D.