-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbash_script_3.php
More file actions
130 lines (123 loc) · 5.36 KB
/
bash_script_3.php
File metadata and controls
130 lines (123 loc) · 5.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
$dirMonths = dirMonths();
$data1 = "
echo 'Смотрим где мы находимся '
echo
pwd
echo
echo '-------------------------------'
echo 'Создаем папку '
echo
mkdir Dir
ls
echo
echo '-------------------------------'
echo 'переходим в эту папку '
echo
cd Dir
pwd
echo
echo '-------------------------------'
echo 'Создаем 12 папок с названием месяцов '
echo
mkdir $dirMonths
ls
echo
echo '-------------------------------'
" ;
// С начало создаем папки
$output1 = shell_exec($data1);
$listMonths =listMonths();
$nowMonth = parsingMonths($listMonths);
$pathDir = end($listMonths);
$tomorow = day($nowMonth);
$text ='В ' . $tomorow . ' 10:00 собеседование. ' . 'Так же само можно настроить crontab для расписание';
$data2 = "
echo 'Находим папку с названием нынешнего месяца и заходим в нее'
echo
$pathDir/$nowMonth
pwd
echo
echo '-------------------------------'
echo 'Создаем текстовый блокнот и пишем что завтра собеседование '
echo
echo $text >> remember.txt
ls
" ;
// Потом парсим папки выберем какую нам надо и создаем текстовый файл в ней
$output2 = shell_exec($data2);
//Вывод результата в браузер
echo "<pre>$output1</pre>";
echo "<pre>$output2</pre>";
//Создание папки по списку
function dirMonths()
{
$months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October',
'November', 'December'];
foreach ($months as $v) {
$listMonths .= ' ' . $v;
}
return $listMonths;
}
// получаем список папок, что находится в каталоге
function listMonths() {
// узнаем путь и добавляем папку
$path = shell_exec('pwd') ;
// задаем команду для перехода в папку, убираем перенос строки и экранирует кавычки (если в пути будут пробелы)
$path = 'cd ' . '"' . trim($path) . '/Dir' . '"' ;
$a = "$path
ls
";
// выводит строку с месяцами, но есть перенос строки
$listMonths = shell_exec($a) ;
// добавляем символ переноса строки
$listMonths = nl2br($listMonths);
// заменяем символ переноса строки на разделитель b
$listMonths = str_replace('<br />', ' b', $listMonths);
// Разбивает строку с помощью разделителя b и формируем массив
$listMonths = explode(" b", $listMonths);
// С помощью цикла и функции trim() убираем перенос строки и лишний пробелы
foreach ($listMonths as$k=> $V) {
$listMonths[$k]=trim($V);
}
$listMonths[] = $path;
return $listMonths ;
}
// Определяем какой месяц сейчас с помощью системы линукс
function parsingMonths($nameMonths) {
// Получили информацию про юзера и компьютер (там есть какой сейчас месяц)
$path = shell_exec('uname -a') ;
// Заменяем пробел на символ
$infoUser = str_replace(' ', ' _ ', $path);
// Разбиваем строку на массив по символу
$infoUserArr = explode(" _", $infoUser);
// Убираем лишний пробелы в массиве
foreach ($infoUserArr as $k=> $V) {
$infoUserArr[$k]=trim($V);
}
// Прошлись по массиву технической информации и каждое слово (значение в этом массиве) подставили в наш поиск, когда слова совпадут
// (если отдаст не пустой массив ) то мы получим в переменную значение
foreach ($infoUserArr as $v2) {
$key = array_keys($nameMonths, $v2);
if (!empty($key)) {
$nowMonth = $key;
}
}
// подставляем ключ в массив и понимаем какой месяц сейчас
$nowMonth = $nameMonths[$nowMonth[0]];
return $nowMonth;
}
// Узнаем какой день месяца сейчас с помощью системы линукс
function day($nowMonth) {
// Получили информацию про юзера и компьютер (там есть какой сейчас день)
$path = shell_exec('uname -a') ;
// Разбиваем строку на массив по разделителю (разделитель у нас месяц)
$pathArr = explode($nowMonth , $path);
// нам нужны первые три символа это будет наш день (первый символ пробел)
$pathDay = substr($pathArr[1], 0, 3);
// Прибавляем единицу, так как нам нужно завтра и это переводит строку в int
$pathTomorow = 1 + $pathDay;
return $pathTomorow;
}
?>
<p><a href="/">Вернутся назад</a></p>