我创建了一些容器,它们还没有准备好使用,总是"重新启动"状态:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
02141a219070 debian "/bin/bash" 53 minutes ago Restarting (0) 3 minutes ago test
3a8b684011d4 debian "/bin/bash" About an hour ago Restarting (0) 4 minutes ago 10.140.10.151:443->443/tcp support-web.equifax.ru
ad40188569cd debian "/bin/bash" 4 hours ago Restarting (0) 25 minutes ago 10.140.10.150:443->443/tcp vpn.equifax.ru
Run Code Online (Sandbox Code Playgroud)
没有执行官:
docker exec test/bin/bash
来自守护程序的错误响应:容器测试正在重新启动,等待容器运行
没有日志:
码头工人日志测试
我用这种方式创建了容器:
docker run --name = test --restart = always debian/bin/bash
如何解决Docker问题?
构造具有各种WHERE条件的sql的最佳方法是什么?我的解决方案看起来很难看
my ($where, @values);
if ($phone_number)
{
$where = 'AND pnone_number=?';
@values = ($from, $till, $phone_number);
}
else
{
$where = '';
@values = ($from, $till);
}
my $sql = 'SELECT * FROM calls WHERE time between ? AND ? '.$where.' ORDER BY time';
my $res = $dbh->selectall_arrayref($sql, undef, @values) or warn 'error';
Run Code Online (Sandbox Code Playgroud) $ for f in /etc/shell*; do echo $f; done
/etc/shells
$
Run Code Online (Sandbox Code Playgroud)
好!
$ for f in /etc/no_such*; do echo $f; done
/etc/no_such*
$
Run Code Online (Sandbox Code Playgroud)
坏!
如果没有文件,我怎样才能获得通配符评估?
我想即时将 mysql 备份到磁带。有些喜欢
mysqldump|tar --filename=mysqlbackup.sql > /dev/tape
Run Code Online (Sandbox Code Playgroud)
我希望磁带的内容是 tar 文件,而该文件的内容是“mysqldump.sql”
所以命令“tar -t < /dev/tape”应该输出
mysqldump.sql
Run Code Online (Sandbox Code Playgroud)
我不想首先将 mysqldump 保存到文件,因为我没有空间和 IO 资源。我想即时完成。
我不想要“mysqldump > /dev/tape”,因为没有元信息,也无法知道磁带有任何内容/
我非常喜欢这种语法:
try_something() or warn "Cant do it";
Run Code Online (Sandbox Code Playgroud)
如何在之后添加更多命令or?
例如,它在这段代码中很有用:
foreach (@array)
{
m/regex/ or {warn "Does not match"; next;} # this syntax is wrong
...
}
Run Code Online (Sandbox Code Playgroud)
我找到的一种方法是
try_something() or eval {warn "Can't do it"; next;};
Run Code Online (Sandbox Code Playgroud)
但我认为这是个坏主意.
最好的答案:
do比...更好eval.do_smth() or warn("Does not match"), next;Nota bene:括号是必需的,warn因此next不会将其解析为其参数之一.我正在寻找好的形式
if (! write_to_file($data) )
{
open_this_file($file_name)
write_to_file($data) or die "Cant write to $file_name" ;
}
Run Code Online (Sandbox Code Playgroud)
它看起来很不清楚,不是吗?怎么写它自我解释?
我打开巨大的(11Gb)文件,将其映射到内存,但无法搜索文件中的字符串
我的代码是
if ( (fd = open("l", O_RDONLY)) < 0 ) err_sys("Cant open file");
if ( fstat(fd, &statbuf) < 0 ) err_sys("Cant get file size");
printf("size is %ld\n", statbuf.st_size);
if ( (src = mmap(0, statbuf.st_size, PROT_READ, MAP_SHARED, fd, 0)) == MAP_FAILED ) err_sys("Cant mmap");
printf("src pointer is at %ld\n", src);
char * index = strstr(src, "bin/bash");
printf("needle is at %ld\n", index);
Run Code Online (Sandbox Code Playgroud)
它适用于小文件,但在巨大的源上返回 0。我应该使用什么函数来搜索巨大的映射文件?
输出是:
size is 11111745740
src pointer is at 140357526544384
needle is at 0
Run Code Online (Sandbox Code Playgroud) 为什么我在这样的代码中收到“无法读取未定义的属性‘PATH’”
console.log(process.env.PATH)
Run Code Online (Sandbox Code Playgroud)
我期望获得UNIX环境变量PATH (PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
但我的node.js“process.env”变量未定义