این خط script نام فایلهایی رو که قبلا دانلود کرده بودم رو به یک نام کوچکتر تغییر میده
for string in `(ls hq*)` ;do mv $string "$(echo $string|awk -F 'hq-' '{print $2}')"; done
ls hq*
فایلهایی رو که با hq شروع میشوند لیست میکنه
echo $string|awk -F 'hq-' '{print $2}
این خط نام فایل رو بر اساس واژه 'hq-' برش میزنه و قسمت دومش رو بر میگردونه
و کل دستور نام هر فایل رو مشخص کرده و اونرو به مقداری که گفتم میبره و سپس نام فایل رو به نام جدید تغییر میده.
ارتباط بین سرورهام روزهای اول بعد از نصبشون خیلی خوب بود.
اما الان خیلی کند شدن
دلیل، میشه با دستور ssh -vv بررسی کرد که کدوم بخش باعث کندیه.
نتیجه. تغییر دو قسمت در sshd_config کمک موثریه
GSSAPIAuthentication
UseDNS
هر دو مقدار باید به no تبدیل بشن
برای انجام کاری لازم بود لیستی از سرورها ساخته شوند و سپس به صورت مرتب فایلها روی سرورها ارسال گردند.
برای اینکار از مفهوم زیر ایده گرفتم که اصل آنرا در اینجا میاورم
حالت اول، در این وضعیت هر خط در لیست به عنوان یک عضو در نظر گرفته می شود
اصطلاحا به آن with whitesapce گفته میشود.
listOfNames="RA
RB
R C
RD"
# To allow for other whitespace in the string:
# 1. add double quotes around the list variable, or
# 2. see the IFS note (under 'Side Notes')
for databaseName in "$listOfNames" # <-- Note: Added "" quotes.
do
echo "$databaseName" # (i.e. do action / processing of $databaseName here...)
done
# Outputs
# RA
# RB
# R C
# RD
without whitespace در اینحالت مشاهده میکنید که خط سوم لیست به صورت دو عضو سوا در نظر گرفته شده است.
listOfNames="RA
RB
R C
RD"
for databaseName in $listOfNames # Note: No quotes
do
echo "$databaseName" # (i.e. do action / processing of $databaseName here...)
done
# Outputs
# RA
# RB
# R
# C
# RD
دستور زیر فایلها و فولدر ها را در لینوکس نمایش میدهد
for d in *; do
echo $d
done
به صورت زیر تنها فولدرها نمایش داده می شوند
for d in */ ; do
echo "$d"
done
نکته اساسی: می توان به جای دستور echo سایر دستورات را به کار برد
ابتدا باید tiger-vncserver را نصب نماییم
توجه کنید که نصب بودن یک محیط گرافیکی اولیه نظیر Genome الزامی است
yum install tigervnc-server |
پس از نصب سرویس vncserver را به لیست سرویس ها اضافه میکنیم.
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service |
vi /etc/systemd/system/vncserver@:1.service |
فایل /etc/systemd/system/vncserver@:1.service/ را ادیت کرده و در بخش service به جای <USER> نام کاربر را وارد نمایید
[Service] Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i" PIDFile=/home/<USER>/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' |
فرض شده کاربر majid در سیستم موجود بوده است
[Service]
|
می بایست فایروال را تنظیم کنید، در اینجا firewalld پیش فرض CentOS-7 استفاده شده است.
firewall-cmd --permanent --zone=public --add-service vnc-server firewall-cmd --reload |
حال می بایست به شناسه majid رفته و در آنجا vncserver را اجرا نماییم
su - majid vncserver exit |
سپس دوباره به شناسه root برگشته و سرویس vncserver را فعال و اجرا می نماییم.
systemctl daemon-reload |
systemctl enable vncserver@:1.service |
systemctl start vncserver@:1.service |
سپس با استفاده از یک vncclient به سرور فوق متصل میشویم.