可能的重复:
我如何确定什么占用了这么多空间?
我刚刚让一台旧服务器瘫痪,因为它的驱动器空间不足。我已登录到 shell,并且正在尝试查找更多要删除的未使用文件。
是否有 shell 命令、脚本或应用程序可以显示最大的文件/文件夹?
当我执行如下命令时,它会按预期给我一个输出,但是当我在远程服务器上运行相同的命令时,它总是给我echo $?作为0.
locally
# <some command>
# echo $?
Remotely
# ssh server " <some command >; echo $? "
Run Code Online (Sandbox Code Playgroud)
现在,在远程执行的情况下,我总是得到0的echo $?输出。
我试图通过 SSH 以 sudo 身份运行命令,但没有成功:
ssh -t -p 2222 name@server /usr/bin/sudo << EOF
chmod u-r /xy
chmod +x /xy
/xy
sleep 5
ps aux | grep xy
sleep 5
exit
EOF
Run Code Online (Sandbox Code Playgroud)
这是行不通的。没有 -t 和 /usr/bin/sudo:
sudo: no tty present and no askpass program specified
Run Code Online (Sandbox Code Playgroud)
单行命令正在工作:
ssh -p 13001 -t name@server 'sudo /xy'
Run Code Online (Sandbox Code Playgroud) 在我的机器上,我希望只有 50% 的数据包会收到。
我正在开发 centOS 5.5。
为此,我在网上搜索。我得到了 IPtables。我使用了 IPtables 的随机补丁。
命令
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m random --average 50 -j DROP
Run Code Online (Sandbox Code Playgroud)
输出
iptables v1.3.5: Couldn't load match `random':/lib64/iptables/libipt_random.so: cannot open shared object file: No such file or directory
Try `iptables -h' or 'iptables --help' for more information.
Run Code Online (Sandbox Code Playgroud)
但上面表明该库丢失了。
然后,我怎样才能丢弃总数的 50% 数据包。请更正我的上述方法或建议新的方法。
告诉我如何将这些库添加到 IPtables 现有包中。[我试过了,但在互联网上找不到这些库]
编辑 1
我还需要记录丢弃的数据包,因此我更改了 iptables 规则集,如下所示:
iptables -L -n -v 输出是 [这是在系统 1 上运行]
Chain INPUT (policy ACCEPT 1875K packets, 114M bytes)
pkts …Run Code Online (Sandbox Code Playgroud) 我有一个每天在 Linux 服务器上运行一次的 cron 作业,并且在它执行的脚本中有一个测试:
# Validate ffmpeg is installed
if [ $(which ffmpeg | grep -c "ffmpeg") -eq 0 ]; then
echo "error: ffmpeg is not installed!" | tee -a "$log"
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
每天当我检查日志文件时,消息ffmpeg is not installed!都在日志中,因此工作尚未执行。如果我which在 shell 中运行测试一切正常,当我执行脚本时一切正常。
cron 是否有内在的东西阻止它正确使用which命令?
Linux 服务器托管在 EST 时区。但我想将 date 命令的输出转换为 IST(印度标准时间 +5:30 小时)格式并在 shell 脚本中使用它。是否有任何选项可用于 date 命令来执行此操作或手动添加/减去小时数。
我的 bash 文件不是由以 root 身份创建的 cronjob 执行的。cronjob 设置如下所示
0 0 * * * mysql_backup.sh
Run Code Online (Sandbox Code Playgroud)
是否需要使用 bash 命令进行 decalared 0 0 * * * bash mysql_backup.sh?如果我手动执行我的 bash 脚本而sudo bash mysql_backup.sh不是它的工作。
我一直在使用创建 cronjobsudo crontab u root -e并且 bash 文件位于 centos 的根目录中
我试图在虚拟机的来宾操作系统中找到一种通用的方法来检查 VMware Tools 是否已过时。
到目前为止,我发现的最好方法是检查“vmware-toolbox-cmd -v”的输出,并将其与预期的版本号进行比较。例如:
if [ "`vmware-toolbox-cmd -v`" = "8.3.18.20074 (build-975338)" ]
then
echo "The vmware tools are OK"
else
echo "The vmware tools are out of date"
...
...
fi
Run Code Online (Sandbox Code Playgroud)
但是版本号会随着时间而变化,所以我每次都需要在每个虚拟机上更新脚本。或者,也许我可以使用 wget 或 curl 从某个共享资源中读取“预期版本号”。
你能帮我找到更好的方法吗?
谢谢
我正在合并一个脚本片段,它通过以下方式确定 Android 版本:
adb shell getprop ro.build.version.release
返回:4.1.2或4.0.4
该代码段目前如下所示:
if [ "$(adb shell getprop ro.build.version.release)" == "4.1.2" ]; then
rw_path="/sdcard/"
elif [ "$(adb shell getprop ro.build.version.release)" == "4.0.4" ]; then
rw_path="/data/local/"
fi
echo $rw_path
Run Code Online (Sandbox Code Playgroud)
我认为 adb 可能会通过 stderr 返回值,就像它使用推/拉输出一样,所以我也尝试了这个(但不确定这是否是正确的方法):
if [ "$(adb shell getprop ro.build.version.release 2>&1)" == "4.1.2" ]; then
rw_path="/sdcard/"
elif [ "$(adb shell getprop ro.build.version.release 2>&1)" == "4.0.4" ]; then
rw_path="/data/local/"
fi
echo $rw_path
Run Code Online (Sandbox Code Playgroud)
尝试了 -eq 运算符而不是 ==,但它警告“预期为整数表达式”。
然后我尝试了这个以确保它确实比较了一些东西:
version=$(adb shell getprop ro.build.version.release 2>&1)
if …Run Code Online (Sandbox Code Playgroud) 我想通过bash rm命令从服务器中删除文件。
这是一个示例文件Test_ Mürz.jgp。
如何大规模删除文件名中带有此类字符问题的文件……尤其是当您不知道字符的位置时。