Я не думаю, что это - dom0_mem, это - проблема здесь. Я думаю, что мы говорим о пространстве, должен был загрузить ядро и initrd в памяти в специальную область, зарезервированную Xen.
Могло случиться так, что initrd и/или vmlinuz являются неправильно большими. Вы могли также попытаться сократить количество центральных процессоров, доступных dom0 (dom0_max_vcpus=2
например).
Вот одно из возможных решений, которое может быть добавлено в скрипт bash. Это не идеальное решение, так как оно сделает новое соединение для каждого файла.
#!/bin/bash
# set variables
USER="username"
HOST="hostname"
file_list="file1 file1 file3 file4"
# delete each file
for file in $file_list; do
echo "rm $file" | sftp $USER@$HOST
done
exit 0
Этот один лайнер намного лучше! file1-9 - это имена файлов для удаления, используйте переменную, если хотите, это одно и то же.
for file in file1 file2 file3 file4 file5 file6 file7 file8 file9; do echo -e "rm $file" >> sftp_batch; done; sftp -b sftp_batch username@hostname; rm sftp_batch
Вы не можете дать команду RM
в SFTP
, требуется только один путь, как написано на странице человека:
rm path
Delete remote file specified by path.
Я обычно использую LFTP
для этого.
$ mkdir adir
$ touch afile1 afile2
$ ls
afile1 afile2
Теперь мы удаляем
$ file_list="afile1 afile2"
$ lftp sftp://sam@skinner -e "cd ~/adir; mrm $file_list"
cd ok, cwd=/home/sam/adir
rm ok, 2 files removed
lftp sam@skinner:~/adir> ls
drwxr-xr-x 2 sam users 4096 Nov 4 11:52 .
drwxr-x--- 131 sam users 20480 Nov 4 11:51 ..
lftp sam@skinner:~/adir> bye
, чтобы сделать его одной командой:
$ lftp sftp://sam@skinner -e "cd ~/adir; mrm $file_list; bye"
Наиболее полезным решением на данный момент является следующее:
screen -S CMD1 -d -m command1 ;
screen -S CMD2 -d -m command2 ;
И вы подключаетесь к экранам с помощью: screen -r < pid >. < cmd >
и выходите из системы с помощью control + a
Это интересно, но... немного неуклюжий a сказал бы, как вы не визуализируете свои интерфейсы и должны двигаться от одного к другому не так интуитивно, плюс, вы должны помнить, чтобы закрыть их, потому что в противном случае вы можете оставить серверы, не замечая и т.д.
Если кто-то считает, что есть лучшее решение и легко, дайте мне знать.;) PD: Я нашел решение здесь: https://stackoverflow.com/questions/18197395/have-bash-script-execute-multiple-programs-as-separate-processes
-121--230382-$ awk 'BEGIN{last=0}{delta[NR]=$2-last; last=$2; print $0" "delta[NR]}' file
даст вам
2003-07-03T16:05 279 279
2003-07-03T16:10 283 4
2003-07-03T16:15 282 -1
с дельтами в последнем столбце, так что найти самый большой просто труба его сортировать
$ awk 'BEGIN{last=0}{delta[NR]=$2-last; last=$2; print $0" "delta[NR]}' file | sort -k3n
2003-07-03T16:15 282 -1
2003-07-03T16:10 283 4
2003-07-03T16:05 279 279
, но для миллионов записей это будет действительно медленно. Вместо этого я бы использовал mysql
или другую БД.
Если вы можете sftp, вы не можете запустить ssh? Если да, то такая команда, как:
ssh user@hostname rm file1 file2
, должна работать нормально. При использовании общих/частных ключей SSH запрос пароля не выводится.
Если это имена файлов. Вы можете удалить их с помощью шаблона глобуса с
rm file*